1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 /**
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     /** Stack container. */
95     ARKUI_NODE_STACK = MAX_NODE_SCOPE_NUM,
96     /** Swiper. */
97     ARKUI_NODE_SWIPER,
98     /** Scrolling container. */
99     ARKUI_NODE_SCROLL,
100     /** List. */
101     ARKUI_NODE_LIST,
102     /** List item. */
103     ARKUI_NODE_LIST_ITEM,
104     /** List item group. */
105     ARKUI_NODE_LIST_ITEM_GROUP,
106     /** Column container. */
107     ARKUI_NODE_COLUMN,
108     /** Row container. */
109     ARKUI_NODE_ROW,
110     /** Flex container. */
111     ARKUI_NODE_FLEX,
112     /** Refresh component. */
113     ARKUI_NODE_REFRESH,
114     /** Water flow container. */
115     ARKUI_NODE_WATER_FLOW,
116     /** Water flow item. */
117     ARKUI_NODE_FLOW_ITEM,
118     /** Relative layout component. */
119     ARKUI_NODE_RELATIVE_CONTAINER,
120     /** Grid. */
121     ARKUI_NODE_GRID,
122     /** Grid item. */
123     ARKUI_NODE_GRID_ITEM,
124     /** Custom_Span. */
125     ARKUI_NODE_CUSTOM_SPAN,
126 } ArkUI_NodeType;
127 
128 /**
129  * @brief Defines the general input parameter structure of the {@link setAttribute} function.
130  *
131  * @since 12
132  */
133 typedef struct {
134     /** Numeric array. */
135     const ArkUI_NumberValue* value;
136     /** Size of the numeric array. */
137     int32_t size;
138     /** String type. */
139     const char* string;
140     /** Object type. */
141     void* object;
142 } ArkUI_AttributeItem;
143 
144 /**
145  * @brief Defines the ArkUI style attributes that can be set on the native side.
146  *
147  * @since 12
148  */
149 typedef enum {
150     /**
151      * @brief Defines the width attribute, which can be set, reset, and obtained as required through APIs.
152      *
153      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
154      * .value[0].f32: width, in vp.\n
155      * \n
156      * Format of the return value {@link ArkUI_AttributeItem}:\n
157      * .value[0].f32: width, in vp.\n
158      *
159      */
160     NODE_WIDTH = 0,
161     /**
162      * @brief Defines the height attribute, which can be set, reset, and obtained as required through APIs.
163      *
164      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
165      * .value[0].f32: height, in vp.\n
166      * \n
167      * Format of the return value {@link ArkUI_AttributeItem}:\n
168      * .value[0].f32: height, in vp.\n
169      *
170      */
171     NODE_HEIGHT,
172     /**
173      * @brief Defines the background color attribute, which can be set, reset, and obtained as required through APIs.
174      *
175      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
176      * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
177      * \n
178      * Format of the return value {@link ArkUI_AttributeItem}:\n
179      * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
180      *
181      */
182     NODE_BACKGROUND_COLOR,
183     /**
184      * @brief Defines the background image attribute, which can be set, reset, and obtained as required through APIs.
185      *
186      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
187      * .string: image address;\n
188      * .value[0]?.i32: whether to repeat the image. Optional. The parameter type is {@link ArkUI_ImageRepeat}.
189      * The default value is <b>ARKUI_IMAGE_REPEAT_NONE</b>.\n
190      * \n
191      * Format of the return value {@link ArkUI_AttributeItem}:\n
192      * .string: image address;\n
193      * .value[0].i32: whether to repeat the image. The parameter type is {@link ArkUI_ImageRepeat}.\n
194      *
195      */
196     NODE_BACKGROUND_IMAGE,
197     /**
198      * @brief Defines the padding attribute, which can be set, reset, and obtained as required through APIs.
199      *
200      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
201      * 1: Specify the same padding for the four directions. \n
202      * .value[0].f32: padding, in vp.\n
203      * 2: Specify different paddings for different directions. \n
204      * .value[0].f32: top padding, in vp.\n
205      * .value[1].f32: right padding, in vp.\n
206      * .value[2].f32: bottom padding, in vp.\n
207      * .value[3].f32: left padding, in vp.\n
208      * \n
209      * Format of the return value {@link ArkUI_AttributeItem}:\n
210      * .value[0].f32: top padding, in vp.\n
211      * .value[1].f32: right padding, in vp.\n
212      * .value[2].f32: bottom padding, in vp.\n
213      * .value[3].f32: left padding, in vp.\n
214      *
215      */
216     NODE_PADDING,
217     /**
218      * @brief Defines the component ID attribute, which can be set, reset, and obtained as required through APIs.
219      *
220      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
221      * .string: component ID.\n
222      * \n
223      * Format of the return value {@link ArkUI_AttributeItem}:\n
224      * .string: component ID.\n
225      *
226      */
227     NODE_ID,
228     /**
229      * @brief Defines the interactivity attribute, which can be set, reset, and obtained as required through APIs.
230      *
231      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
232      * .value[0].i32: The value <b>true</b> means that the component can interact with users, and <b>false</b> means
233      * the opposite.\n
234      * \n
235      * Format of the return value {@link ArkUI_AttributeItem}:\n
236      * .value[0].i32: The value <b>1</b> means that the component can interact with users, and <b>0</b> means
237      * the opposite. \n
238      *
239      */
240     NODE_ENABLED,
241     /**
242      * @brief Defines the margin attribute, which can be set, reset, and obtained as required through APIs.
243      *
244      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
245      * 1: Specify the same margin for the four directions. \n
246      * .value[0].f32: margin, in vp.\n
247      * 2: Specify different margins for different directions. \n
248      * .value[0].f32: top margin, in vp.\n
249      * .value[1].f32: right margin, in vp.\n
250      * .value[2].f32: bottom margin, in vp.\n
251      * .value[3].f32: left margin, in vp.\n
252      * \n
253      * Format of the return value {@link ArkUI_AttributeItem}:\n
254      * .value[0].f32: top margin, in vp.\n
255      * .value[1].f32: right margin, in vp.\n
256      * .value[2].f32: bottom margin, in vp.\n
257      * .value[3].f32: left margin, in vp.\n
258      *
259      */
260     NODE_MARGIN,
261     /**
262      * @brief Defines the translate attribute, which can be set, reset, and obtained as required through APIs.
263      *
264      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
265      * .value[0].f32: distance to translate along the x-axis, in vp. The default value is <b>0</b>.\n
266      * .value[1].f32: distance to translate along the y-axis, in vp. The default value is <b>0</b>.\n
267      * .value[2].f32: distance to translate along the z-axis, in vp. The default value is <b>0</b>. \n
268      * \n
269      * Format of the return value {@link ArkUI_AttributeItem}:\n
270      * .value[0].f32: distance to translate along the x-axis, in vp.\n
271      * .value[1].f32: distance to translate along the y-axis, in vp.\n
272      * .value[2].f32: distance to translate along the z-axis, in vp. \n
273      *
274      */
275     NODE_TRANSLATE,
276     /**
277      * @brief Defines the scale attribute, which can be set, reset, and obtained as required through APIs.
278      *
279      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
280      * .value[0].f32: scale factor along the x-axis. The default value is <b>1</b>.\n
281      * .value[1].f32: scale factor along the y-axis. The default value is <b>1</b>. \n
282      * \n
283      * Format of the return value {@link ArkUI_AttributeItem}:\n
284      * .value[0].f32: scale factor along the x-axis.\n
285      * .value[1].f32: scale factor along the y-axis. \n
286      *
287      */
288     NODE_SCALE,
289     /**
290      * @brief Defines the rotate attribute, which can be set, reset, and obtained as required through APIs.
291      *
292      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
293      * .value[0].f32: X coordinate of the rotation axis vector. The default value is <b>0</b>.\n
294      * .value[1].f32: Y coordinate of the rotation axis vector. The default value is <b>0</b>.\n
295      * .value[2].f32: Z coordinate of the rotation axis vector. The default value is <b>0</b>.\n
296      * .value[3].f32: rotation angle. The default value is <b>0</b>.\n
297      * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp.
298      * The default value is <b>0</b>. \n
299      * \n
300      * Format of the return value {@link ArkUI_AttributeItem}:\n
301      * .value[0].f32: X coordinate of the rotation axis vector.\n
302      * .value[1].f32: Y coordinate of the rotation axis vector.\n
303      * .value[2].f32: Z coordinate of the rotation axis vector.\n
304      * .value[3].f32: rotation angle.\n
305      * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp. \n
306      *
307      */
308     NODE_ROTATE,
309     /**
310      * @brief Sets the brightness attribute, which can be set, reset, and obtained as required through APIs.
311      *
312      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
313      * .value[0].f32: brightness value. The default value is <b>1.0</b>, and the recommended value range is [0, 2]. \n
314      * \n
315      * Format of the return value {@link ArkUI_AttributeItem}:\n
316      * .value[0].f32: brightness value. \n
317      *
318      */
319     NODE_BRIGHTNESS,
320     /**
321      * @brief Sets the saturation attribute, which can be set, reset, and obtained as required through APIs.
322      *
323      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
324      * .value[0].f32: saturation value. The default value is <b>1.0</b>, and the recommended value range is [0, 50]. \n
325      * \n
326      * Format of the return value {@link ArkUI_AttributeItem}: \n
327      * .value[0].f32: saturation value. \n
328      *
329      */
330     NODE_SATURATION,
331     /**
332      * @brief Sets the blur attribute, which can be set, reset, and obtained as required through APIs.
333      *
334      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
335      * .value[0].f32: blur radius. A larger value indicates a higher blur degree. If the value is <b>0</b>,
336      * the component is not blurred. The unit is vp. The default value is <b>0.0</b>. \n
337      * \n
338      * Format of the return value {@link ArkUI_AttributeItem}:\n
339      * .value[0].f32: blur radius. The larger the fuzzy radius, the more blurred the image. If the value is <b>0</b>,
340      * the image is not blurred. The unit is vp. \n
341      *
342      */
343     NODE_BLUR,
344     /**
345      * @brief Sets the gradient attribute, which can be set, reset, and obtained as required through APIs.
346      *
347      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
348      * .value[0].f32: start angle of the linear gradient. A positive value indicates a clockwise rotation from the
349      * origin, (0, 0). The default value is <b>180</b>.\n
350      * .value[1].i32: direction of the linear gradient. It does not take effect when <b>angle</b> is set.
351      * The parameter type is {@link ArkUI_LinearGradientDirection}. \n
352      * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>. \n
353      * .object: array of color stops, each of which consists of a color and its stop position.
354      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
355      * colors: colors of the color stops. \n
356      * stops: stop positions of the color stops. \n
357      * size: number of colors. \n
358      * \n
359      * Format of the return value {@link ArkUI_AttributeItem}:\n
360      * .value[0].f32: start angle of the linear gradient. \n
361      * .value[1].i32: direction of the linear gradient. It does not take effect when <b>angle</b> is set. \n
362      * .value[2].i32: whether the colors are repeated. \n
363      * .object: array of color stops, each of which consists of a color and its stop position.
364      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
365      * colors: colors of the color stops. \n
366      * stops: stop positions of the color stops. \n
367      * size: number of colors. \n
368      *
369      */
370     NODE_LINEAR_GRADIENT,
371     /**
372      * @brief Sets the alignment attribute, which can be set, reset, and obtained as required through APIs.
373      *
374      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
375      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
376      * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
377      * \n
378      * Format of the return value {@link ArkUI_AttributeItem}:\n
379      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
380      *
381      */
382     NODE_ALIGNMENT,
383     /**
384      * @brief Defines the opacity attribute, which can be set, reset, and obtained as required through APIs.
385      *
386      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
387      * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
388      * \n
389      * Format of the return value {@link ArkUI_AttributeItem}:\n
390      * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
391      *
392      */
393     NODE_OPACITY,
394     /**
395      * @brief Defines the border width attribute, which can be set, reset, and obtained as required through APIs.
396      *
397      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
398      * 1: .value[0].f32: width of the four borders. \n
399      * 2: .value[0].f32: width of the top border. \n
400      * .value[1].f32: width of the right border. \n
401      * .value[2].f32: width of the bottom border. \n
402      * .value[3].f32: width of the left border. \n
403      * \n
404      * Format of the return value {@link ArkUI_AttributeItem}:\n
405      * .value[0].f32: width of the top border. \n
406      * .value[1].f32: width of the right border. \n
407      * .value[2].f32: width of the bottom border. \n
408      * .value[3].f32: width of the left border. \n
409      *
410      */
411     NODE_BORDER_WIDTH,
412     /**
413      * @brief Defines the border corner radius 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: radius of the four corners. \n
417      * 2: .value[0].f32: radius of the upper left corner. \n
418      * .value[1].f32: radius of the upper right corner. \n
419      * .value[2].f32: radius of the lower left corner. \n
420      * .value[3].f32: radius of the lower right corner. \n
421      * \n
422      * Format of the return value {@link ArkUI_AttributeItem}:\n
423      * .value[0].f32: radius of the upper left corner. \n
424      * .value[1].f32: radius of the upper right corner. \n
425      * .value[2].f32: radius of the lower left corner. \n
426      * .value[3].f32: radius of the lower right corner. \n
427      *
428      */
429     NODE_BORDER_RADIUS,
430     /**
431      * @brief Defines the border color 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].u32: color of the four borders, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
435      * 2: .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
436      * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
437      * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
438      * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
439      * \n
440      * Format of the return value {@link ArkUI_AttributeItem}:\n
441      * .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
442      * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
443      * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
444      * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
445      *
446      */
447     NODE_BORDER_COLOR,
448     /**
449      * @brief Defines the border line style 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].i32: line style of the four borders. The parameter type is {@link ArkUI_BorderStyle}.
453      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
454      * 2: .value[0].i32: line style of the top border. The parameter type is {@link ArkUI_BorderStyle}.
455      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
456      * .value[1].i32: line style of the right border. The parameter type is {@link ArkUI_BorderStyle}.
457      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
458      * .value[2].i32: line style of the bottom border. The parameter type is {@link ArkUI_BorderStyle}.
459      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
460      * .value[3].i32: line style of the left border. The parameter type is {@link ArkUI_BorderStyle}.
461      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
462      * \n
463      * Format of the return value {@link ArkUI_AttributeItem}:\n
464      * .value[0].i32: line style of the top border. \n
465      * .value[1].i32: line style of the right border. \n
466      * .value[2].i32: line style of the bottom border. \n
467      * .value[3].i32: line style of the left border. \n
468      *
469      */
470     NODE_BORDER_STYLE,
471     /**
472      * @brief Defines the z-index attribute for the stack sequence.
473      * This attribute can be set, reset, and obtained as required through APIs.
474      *
475      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
476      * .value[0].f32: z-index value. \n
477      * \n
478      * Format of the return value {@link ArkUI_AttributeItem}:\n
479      * .value[0].f32: z-index value. \n
480      *
481      */
482     NODE_Z_INDEX,
483     /**
484      * @brief Defines the visibility attribute, which can be set, reset, and obtained as required through APIs.
485      *
486      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
487      * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
488      * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
489      * \n
490      * Format of the return value {@link ArkUI_AttributeItem}:\n
491      * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
492      * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
493      *
494      */
495     NODE_VISIBILITY,
496     /**
497      * @brief Defines the clip attribute, which can be set, reset, and obtained as required through APIs.
498      *
499      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
500      * .value[0].i32: whether to clip the component based on the parent container bounds.
501      * The value <b>0</b> means to clip the component, and <b>1</b> means the opposite. \n
502      * \n
503      * Format of the return value {@link ArkUI_AttributeItem}:\n
504      * .value[0].i32: whether to clip the component based on the parent container bounds.
505      * The value <b>0</b> means to clip the component, and <b>1</b> means the opposite. \n
506      *
507      */
508     NODE_CLIP,
509     /**
510      * @brief Defines the clipping region on the component.
511      * This attribute can be set and obtained as required through APIs.
512      *
513      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute,
514      * which supports five types of shapes:\n
515      * 1. Rectangle:\n
516      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
517      * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape.\n
518      * .value[1].f32: width of the rectangle.\n
519      * .value[2].f32: height of rectangle.\n
520      * .value[3].f32: width of the rounded corner of the rectangle.\n
521      * .value[4].f32: height of the rounded corner of the rectangle.\n
522      * 2. Circle:\n
523      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
524      * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
525      * .value[1].f32: width of the circle.\n
526      * .value[2].f32: height of the circle.\n
527      * 3. Ellipse:\n
528      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
529      * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
530      * .value[1].f32: width of the ellipse.\n
531      * .value[2].f32: height of the ellipse.\n
532      * 4. Path:\n
533      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
534      * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
535      * .value[1].f32: width of the path.\n
536      * .value[2].f32: height of the path.\n
537      * .string: command for drawing the path.\n
538      * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
539      * 1. Rectangle:\n
540      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
541      * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape.\n
542      * .value[1].f32: width of the rectangle.\n
543      * .value[2].f32: height of rectangle.\n
544      * .value[3].f32: width of the rounded corner of the rectangle.\n
545      * .value[4].f32: height of the rounded corner of the rectangle.\n
546      * 2. Circle:\n
547      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
548      * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
549      * .value[1].f32: width of the circle.\n
550      * .value[2].f32: height of the circle.\n
551      * 3. Ellipse:\n
552      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
553      * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
554      * .value[1].f32: width of the ellipse.\n
555      * .value[2].f32: height of the ellipse.\n
556      * 4. Path:\n
557      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
558      * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
559      * .value[1].f32: width of the path.\n
560      * .value[2].f32: height of the path.\n
561      * .string: command for drawing the path.\n
562      *
563      */
564     NODE_CLIP_SHAPE,
565     /**
566      * @brief Defines the transform attribute, which can be used to translate, rotate, and scale images.
567      * This attribute can be set, reset, and obtained as required through APIs.
568      *
569      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
570      * .data[0...15].f32: 16 floating-point numbers. \n
571      * \n
572      * Format of the return value {@link ArkUI_AttributeItem}:\n
573      * .data[0...15].f32: 16 floating-point numbers. \n
574      *
575      */
576     NODE_TRANSFORM,
577     /**
578      * @brief Defines the hit test behavior attribute, which can be set, reset, and obtained as required through APIs.
579      *
580      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
581      * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
582      * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
583      * \n
584      * Format of the return value {@link ArkUI_AttributeItem}:\n
585      * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
586      * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
587      *
588      */
589     NODE_HIT_TEST_BEHAVIOR,
590     /**
591      * @brief Defines the offset attribute, which specifies the offset of the component's upper left corner relative
592      * to the parent container's. This attribute can be set, reset, and obtained as required through APIs.
593      *
594      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
595      * .value[0].f32: X coordinate. \n
596      * .value[1].f32: Y coordinate. \n
597      * \n
598      * Format of the return value {@link ArkUI_AttributeItem}:\n
599      * .value[0].f32: X coordinate. \n
600      * .value[1].f32: Y coordinate. \n
601      *
602      */
603     NODE_POSITION,
604     /**
605      * @brief Defines the shadow attribute, which can be set, reset, and obtained as required through APIs.
606      *
607      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
608      * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
609      * \n
610      * Format of the return value {@link ArkUI_AttributeItem}:\n
611      * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
612      *
613      */
614     NODE_SHADOW,
615     /**
616      * @brief Defines the custom shadow effect. This attribute can be set, reset, and obtained as required through APIs.
617      *
618      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
619      * .value[0]?.f32: blur radius of the shadow, in vp.\n
620      * .value[1]?.i32: whether to enable the coloring strategy. The value <b>1</b> means to enable the coloring
621      * strategy, and <b>0</b> (default value) means the opposite.\n
622      * .value[2]?.f32: offset of the shadow along the x-axis, in px.\n
623      * .value[3]?.f32: offset of the shadow along the y-axis, in px.\n
624      * .value[4]?.i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
625      * .value[5]?.u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
626      * .value[6]?.u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
627      * means the opposite.\n
628      *
629      * \n
630      * Format of the return value {@link ArkUI_AttributeItem}:\n
631      * .value[0].f32: blur radius of the shadow, in vp.\n
632      * .value[1].i32: whether to enable the coloring strategy. \n
633      * .value[2].f32: offset of the shadow along the x-axis, in px.\n
634      * .value[3].f32: offset of the shadow along the y-axis, in px.\n
635      * .value[4].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
636      * .value[5].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
637      * .value[6].u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
638      * means the opposite.\n
639      *
640      */
641     NODE_CUSTOM_SHADOW,
642     /**
643      * @brief Defines the background image width and height.
644      * This attribute can be set, reset, and obtained as required through APIs.
645      *
646      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
647      * .value[0].f32: width of the image. The value range is [0, +∞), and the unit is vp. \n
648      * .value[1].f32: height of the image. The value range is [0, +∞), and the unit is vp. \n
649      * \n
650      * Format of the return value {@link ArkUI_AttributeItem}:\n
651      * .value[0].f32: width of the image, in vp. \n
652      * .value[1].f32: height of the image, in vp. \n
653      *
654      */
655     NODE_BACKGROUND_IMAGE_SIZE,
656     /**
657      * @brief Defines the background image size.
658      * This attribute can be set, reset, and obtained as required through APIs.
659      *
660      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
661      * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
662      * \n
663      * Format of the return value {@link ArkUI_AttributeItem}:\n
664      * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
665      *
666      */
667     NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE,
668     /**
669      * @brief Defines the background blur attribute, which can be set, reset, and obtained as required through APIs.
670      *
671      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
672      * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
673      * .value[1]?.i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
674      * .value[2]?.i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
675      * .value[3]?.f32: blur degree. The value range is [0.0, 1.0]. \n
676      * .value[4]?.f32: start boundary of grayscale blur. \n
677      * .value[5]?.f32: end boundary of grayscale blur. \n
678      * \n
679      * Format of the return value {@link ArkUI_AttributeItem}:\n
680      * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
681      * .value[1].i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
682      * .value[2].i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
683      * .value[3].f32: blur degree. The value range is [0.0, 1.0]. \n
684      * .value[4].f32: start boundary of grayscale blur. \n
685      * .value[5].f32: end boundary of grayscale blur. \n
686      *
687      */
688     NODE_BACKGROUND_BLUR_STYLE,
689     /**
690      * @brief Defines the transform center attribute, which can be set, reset, and obtained as required through APIs.
691      *
692      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
693      * .value[0]?.f32: X coordinate of the center point, in vp.\n
694      * .value[1]?.f32: Y coordinate of the center point, in vp.\n
695      * .value[2]?.f32: Z coordinate of the center point, in vp.\n
696      * .value[3]?.f32 : X coordinate of the center point, expressed in a number that represents a percentage.
697      * For example, 0.2 indicates 20%. This attribute overwrites value[0].f32. The default value is <b>0.5f</b>. \n
698      * .value[4]?.f32 : Y coordinate of the center point, expressed in a number that represents a percentage.
699      * For example, 0.2 indicates 20%. This attribute overwrites value[1].f32. The default value is <b>0.5f</b>. \n
700      * .value[5]?.f32 : Z coordinate of the center point, expressed in a number that represents a percentage.
701      * For example, 0.2 indicates 20%. This attribute overwrites value[2].f32. The default value is <b>0.0f</b>. \n
702      * \n
703      * Format of the return value {@link ArkUI_AttributeItem}:\n
704      * .value[0].f32: X coordinate of the center point, in vp.\n
705      * .value[1].f32: Y coordinate of the center point, in vp.\n
706      * .value[2].f32: Z coordinate of the center point, in vp.\n
707      * Note: If the coordinate is expressed in a number that represents a percentage, the attribute obtaining API
708      * returns the calculated value in vp.
709      *
710      */
711     NODE_TRANSFORM_CENTER,
712     /**
713      * @brief Defines the transition opacity attribute, which can be set, reset, and obtained as required through APIs.
714      *
715      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
716      * .value[0].f32: opacity values of the start and end points.\n
717      * .value[1].i32: animation duration, in milliseconds.\n
718      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
719      * .value[3]?.i32: animation delay duration, in milliseconds.\n
720      * .value[4]?.i32: number of times that the animation is played.\n
721      * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}.\n
722      * .value[6]?.f32: animation playback speed.\n
723      * \n
724      * Format of the return value {@link ArkUI_AttributeItem}:\n
725      * .value[0].f32: opacity values of the start and end points.\n
726      * .value[1].i32: animation duration, in milliseconds.\n
727      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
728      * .value[3].i32: animation delay duration, in milliseconds. \n
729      * .value[4].i32: number of times that the animation is played. \n
730      * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
731      * .value[6].f32: animation playback speed. \n
732      *
733      */
734     NODE_OPACITY_TRANSITION,
735     /**
736      * @brief Defines the transition rotation attribute, which can be set, reset, and obtained as required through APIs.
737      *
738      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
739      * .value[0].f32: X-component of the rotation vector. \n
740      * .value[1].f32: Y-component of the rotation vector. \n
741      * .value[2].f32: Z-component of the rotation vector \n
742      * .value[3].f32: angle. \n
743      * .value[4].f32: line of sight. The default value is <b>0.0f</b>. \n
744      * .value[5].i32: animation duration, in milliseconds. \n
745      * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
746      * .value[7]?.i32: animation delay duration, in milliseconds. \n
747      * .value[8]?.i32: number of times that the animation is played. \n
748      * .value[9]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
749      * .value[10]?.f32: animation playback speed. \n
750      * \n
751      * Format of the return value {@link ArkUI_AttributeItem}:\n
752      * .value[0].f32: X-component of the rotation vector. \n
753      * .value[1].f32: Y-component of the rotation vector. \n
754      * .value[2].f32: Z-component of the rotation vector \n
755      * .value[3].f32: angle. \n
756      * .value[4].f32: line of sight. \n
757      * .value[5].i32: animation duration, in milliseconds. \n
758      * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
759      * .value[7].i32: animation delay duration, in milliseconds. \n
760      * .value[8].i32: number of times that the animation is played. \n
761      * .value[9].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
762      * .value[10].f32: animation playback speed. \n
763      *
764      */
765     NODE_ROTATE_TRANSITION,
766     /**
767      * @brief Defines the transition scaling attribute, which can be set, reset, and obtained as required through APIs.
768      *
769      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
770      * .value[0].f32: scale factor along the x-axis. \n
771      * .value[1].f32: scale factor along the y-axis. \n
772      * .value[2].f32: scale factor along the z-axis. \n
773      * .value[3].i32: animation duration, in milliseconds. \n
774      * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
775      * .value[5]?.i32: animation delay duration, in milliseconds. \n
776      * .value[6]?.i32: number of times that the animation is played. \n
777      * .value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
778      * .value[8]?.f32: animation playback speed. \n
779      * \n
780      * Format of the return value {@link ArkUI_AttributeItem}:\n
781      * .value[0].f32: scale factor along the x-axis. \n
782      * .value[1].f32: scale factor along the y-axis. \n
783      * .value[2].f32: scale factor along the z-axis. \n
784      * .value[3].i32: animation duration, in milliseconds. \n
785      * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
786      * .value[5].i32: animation delay duration, in milliseconds. \n
787      * .value[6].i32: number of times that the animation is played. \n
788      * .value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
789      * .value[8].f32: animation playback speed. \n
790      *
791      */
792     NODE_SCALE_TRANSITION,
793     /**
794      * @brief Defines the transition translation attribute.
795      * This attribute can be set, reset, and obtained as required through APIs.
796      *
797      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
798      * value[0].f32: translation distance along the x-axis, in vp.\n
799      * value[1].f32: translation distance along the y-axis, in vp.\n
800      * value[2].f32: translation distance along the z-axis, in vp.\n
801      * value[3].i32: animation duration, in milliseconds. \n
802      * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
803      * value[5]?.i32: animation delay duration, in milliseconds. \n
804      * value[6]?.i32: number of times that the animation is played. \n
805      * value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
806      * value[8]?.f32: animation playback speed. \n
807      * \n
808      * Format of the return value {@link ArkUI_AttributeItem}:\n
809      * value[0].f32: translation distance along the x-axis, in vp.\n
810      * value[1].f32: translation distance along the y-axis, in vp.\n
811      * value[2].f32: translation distance along the z-axis, in vp.\n
812      * value[3].i32: animation duration, in milliseconds. \n
813      * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
814      * value[5].i32: animation delay duration, in milliseconds. \n
815      * value[6].i32: number of times that the animation is played. \n
816      * value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
817      * value[8].f32: animation playback speed. \n
818      *
819      */
820     NODE_TRANSLATE_TRANSITION,
821     /**
822      * @brief Defines the slide-in and slide-out of the component from the screen edge during transition.
823      * This attribute can be set, reset, and obtained as required through APIs.
824      *
825      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
826      * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
827      * .value[1].i32: animation duration, in milliseconds.\n
828      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
829      * .value[3]?.i32: animation delay duration, in milliseconds. \n
830      * .value[4]?.i32: number of times that the animation is played. \n
831      * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
832      * .value[6]?.f32: animation playback speed. \n
833      * \n
834      * Format of the return value {@link ArkUI_AttributeItem}:\n
835      * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
836      * .value[1].i32: animation duration, in milliseconds.\n
837      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
838      * .value[3].i32: animation delay duration, in milliseconds. \n
839      * .value[4].i32: number of times that the animation is played. \n
840      * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
841      * .value[6].f32: animation playback speed. \n
842      *
843      */
844     NODE_MOVE_TRANSITION,
845 
846     /**
847      * @brief Defines the focus attribute, which can be set, reset, and obtained as required through APIs.
848      *
849      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
850      * .value[0].i32: The parameter type is 1 or 0.
851      * \n
852      * Format of the return value {@link ArkUI_AttributeItem}:\n
853      * .value[0].i32: The parameter type is 1 or 0.
854      *
855      */
856     NODE_FOCUSABLE,
857 
858     /**
859      * @brief Defines the default focus attribute, which can be set, reset, and obtained as required through APIs.
860      *
861      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
862      * value[0].i32: The parameter type is 1 or 0.
863      * \n
864      * Format of the return value {@link ArkUI_AttributeItem}:\n
865      * value[0].i32: The parameter type is 1 or 0.
866      *
867      */
868     NODE_DEFAULT_FOCUS,
869 
870     /**
871      * @brief Defines the touch target attribute, which can be set, reset, and obtained as required through APIs.
872      *
873      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
874      * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
875      * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
876      * .data[2].f32: width of the touch target, in %. \n
877      * .data[3].f32: height of the touch target, in %. \n
878      * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
879      * \n
880      * Format of the return value {@link ArkUI_AttributeItem}:\n
881      * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
882      * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
883      * .data[2].f32: width of the touch target, in %. \n
884      * .data[3].f32: height of the touch target, in %. \n
885      * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
886      *
887      */
888     NODE_RESPONSE_REGION,
889 
890     /**
891      * @brief Defines the overlay attribute, which can be set, reset, and obtained as required through APIs.
892      *
893      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
894      * .string: mask text.\n
895      * .value[0]?.i32: position of the overlay relative to the component. Optional.
896      * The parameter type is {@link ArkUI_Alignment}.
897      * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
898      * .value[1]?.f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. Optional. \n
899      * .value[2]?.f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp. Optional.
900      * \n
901      * Format of the return value {@link ArkUI_AttributeItem}:\n
902      * .string: mask text.\n
903      * .value[0].i32: position of the overlay relative to the component.
904      * The parameter type is {@link ArkUI_Alignment}.
905      * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
906      * .value[1].f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. \n
907      * .value[2].f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp.
908      *
909      *
910      */
911     NODE_OVERLAY,
912     /**
913      * @brief Defines the sweep gradient effect.
914      * This attribute can be set, reset, and obtained as required through APIs.
915      *
916      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
917      * .value[0]?.f32: X coordinate of the sweep gradient center relative to the upper left corner of the component.\n
918      * .value[1]?.f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component.\n
919      * .value[2]?.f32: start point of the sweep gradient. The default value is <b>0</b>. \n
920      * .value[3]?.f32: end point of the sweep gradient. The default value is <b>0</b>. \n
921      * .value[4]?.f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
922      * .value[5]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
923      * and <b>0</b> means the opposite.\n
924      * .object: array of color stops, each of which consists of a color and its stop position.
925      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
926      * colors: colors of the color stops. \n
927      * stops: stop positions of the color stops. \n
928      * size: number of colors. \n
929      * \n
930      * Format of the return value {@link ArkUI_AttributeItem}:\n
931      * .value[0].f32: X coordinate of the sweep gradient center relative to the upper left corner of the component. \n
932      * .value[1].f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component. \n
933      * .value[2].f32: start point of the sweep gradient. The default value is <b>0</b>. \n
934      * .value[3].f32: end point of the sweep gradient. The default value is <b>0</b>. \n
935      * .value[4].f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
936      * .value[5].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
937      * and <b>0</b> means the opposite.\n
938      * .object: array of color stops, each of which consists of a color and its stop position.
939      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
940      * colors: colors of the color stops. \n
941      * stops: stop positions of the color stops. \n
942      * size: number of colors. \n
943      *
944      */
945     NODE_SWEEP_GRADIENT,
946     /**
947      * @brief Defines the radial gradient effect.
948      * This attribute can be set, reset, and obtained as required through APIs.
949      *
950      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
951      * .value[0]?.f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
952      * .value[1]?.f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
953      * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
954      * .value[3]?.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      * \n
962      * Format of the return value {@link ArkUI_AttributeItem}:\n
963      * .value[0].f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
964      * .value[1].f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
965      * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
966      * .value[3].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
967      * and <b>0</b> means the opposite.\n
968      * .object: array of color stops, each of which consists of a color and its stop position.
969      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
970      * colors: colors of the color stops. \n
971      * stops: stop positions of the color stops. \n
972      * size: number of colors. \n
973      *
974      */
975     NODE_RADIAL_GRADIENT,
976     /**
977      * @brief Adds a mask of the specified shape to the component.
978      * This attribute can be set, reset, and obtained as required through APIs.
979      *
980      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute, which supports five types of
981      * shapes:\n
982      * 1. Rectangle:\n
983      * .value[0].u32 fill color, in 0xARGB format. \n
984      * .value[1].u32: stroke color, in 0xARGB format. \n
985      * .value[2].f32: stroke width, in vp. \n
986      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
987      * The value is <b>ARKUI_MASK_TYPE_RECTANGLE</b> for the rectangle shape.\n
988      * .value[4].f32: width of the rectangle.\n
989      * .value[5].f32: height of the rectangle.\n
990      * .value[6].f32: width of the rounded corner of the rectangle.\n
991      * .value[7].f32: height of the rounded corner of the rectangle.\n
992      * 2. Circle:\n
993      * .value[0].u32 fill color, in 0xARGB format. \n
994      * .value[1].u32: stroke color, in 0xARGB format. \n
995      * .value[2].f32: stroke width, in vp. \n
996      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
997      * The value is <b>ARKUI_MASK_TYPE_CIRCLE</b> for the circle shape.\n
998      * .value[4].f32: width of the circle.\n
999      * .value[5].f32: height of the circle.\n
1000      * 3. Ellipse:\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_ELLIPSE</b> for the ellipse shape.\n
1006      * .value[4].f32: width of the ellipse.\n
1007      * .value[5].f32: height of the ellipse.\n
1008      * 4. Path:\n
1009      * .value[0].u32 fill color, in 0xARGB format. \n
1010      * .value[1].u32: stroke color, in 0xARGB format. \n
1011      * .value[2].f32: stroke width, in vp. \n
1012      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1013      * The value is <b>ARKUI_MASK_TYPE_PATH</b> for the path shape.\n
1014      * .value[4].f32: width of the path.\n
1015      * .value[5].f32: height of the path.\n
1016      * .string: command for drawing the path.\n
1017      * 5. Progress:\n
1018      * .value[0].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1019      * The value is <b>ARKUI_MASK_TYPE_PROSGRESS</b> for the progress shape.\n
1020      * .value[1].f32: current value of the progress indicator.\n
1021      * .value[2].f32: maximum value of the progress indicator.\n
1022      * .value[3].u32: color of the progress indicator.\n
1023      * \n
1024      * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
1025      * 1. Rectangle:\n
1026      * .value[0].u32 fill color, in 0xARGB format. \n
1027      * .value[1].u32: stroke color, in 0xARGB format. \n
1028      * .value[2].f32: stroke width, in vp. \n
1029      * .value[3].i32: mask type.\n
1030      * .value[4].f32: width of the rectangle.\n
1031      * .value[5].f32: height of the rectangle.\n
1032      * .value[6].f32: width of the rounded corner of the rectangle.\n
1033      * .value[7].f32: height of the rounded corner of the rectangle.\n
1034      * 2. Circle:\n
1035      * .value[0].u32 fill color, in 0xARGB format. \n
1036      * .value[1].u32: stroke color, in 0xARGB format. \n
1037      * .value[2].f32: stroke width, in vp. \n
1038      * .value[3].i32: mask type.\n
1039      * .value[4].f32: width of the circle.\n
1040      * .value[5].f32: height of the circle.\n
1041      * 3. Ellipse:\n
1042      * .value[0].u32 fill color, in 0xARGB format. \n
1043      * .value[1].u32: stroke color, in 0xARGB format. \n
1044      * .value[2].f32: stroke width, in vp. \n
1045      * .value[3].i32: mask type.\n
1046      * .value[4].f32: width of the ellipse.\n
1047      * .value[5].f32: height of the ellipse.\n
1048      * 4. Path:\n
1049      * .value[0].u32 fill color, in 0xARGB format. \n
1050      * .value[1].u32: stroke color, in 0xARGB format. \n
1051      * .value[2].f32: stroke width, in vp. \n
1052      * .value[3].i32: mask type.\n
1053      * .value[4].f32: width of the path.\n
1054      * .value[5].f32: height of the path.\n
1055      * .string: command for drawing the path.\n
1056      * 5. Progress:\n
1057      * .value[0].i32: mask type.\n
1058      * .value[1].f32: current value of the progress indicator.\n
1059      * .value[2].f32: maximum value of the progress indicator.\n
1060      * .value[3].u32: color of the progress indicator.\n
1061      *
1062      */
1063     NODE_MASK,
1064     /**
1065      * @brief Blends the component's background with the content of the component's child node.
1066      * This attribute can be set, reset, and obtained as required through APIs.
1067      *
1068      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1069      * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
1070      * <b>ARKUI_BLEND_MODE_NONE</b>. \n
1071      * .value[1].?i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
1072      * The default value is <b>ARKUI_BLEND_APPLY_TYPE_FAST</b>. \n
1073      * \n
1074      * Format of the return value {@link ArkUI_AttributeItem}:\n
1075      * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
1076      * <b>ARKUI_BLEND_MODE_NONE</b>. \n
1077      * .value[1].i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
1078      * The default value is <b>ARKUI_BLEND_APPLY_TYPE_FAST</b>. \n
1079      *
1080      */
1081     NODE_BLEND_MODE,
1082     /**
1083      * @brief Sets the direction of the main axis.
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: direction of the main axis.\n
1088      * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
1089      * \n
1090      * Format of the return value {@link ArkUI_AttributeItem}:\n
1091      * .value[0].i32: direction of the main axis.\n
1092      * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
1093      *
1094      */
1095     NODE_DIRECTION,
1096     /**
1097      * @brief Defines the size constraints.
1098      * This attribute can be set, reset, and obtained as required through APIs.
1099      *
1100      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1101      * .value[0].f32: minimum width, in vp.\n
1102      * .value[1].f32: maximum width, in vp.\n
1103      * .value[2].f32: minimum height, in vp.\n
1104      * .value[3].f32: maximum height, in vp.\n
1105      * \n
1106      * Format of the return value {@link ArkUI_AttributeItem}:\n
1107      * .value[0].f32: minimum width, in vp.\n
1108      * .value[1].f32: maximum width, in vp.\n
1109      * .value[2].f32: minimum height, in vp.\n
1110      * .value[3].f32: maximum height, in vp.\n
1111      *
1112      */
1113     NODE_CONSTRAINT_SIZE,
1114     /**
1115      * @brief Defines the grayscale effect.
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: grayscale conversion ratio. The value ranges from 0 to 1.
1120      * For example, 0.5 indicates a 50% grayscale conversion ratio. \n
1121      * \n
1122      * Format of the return value {@link ArkUI_AttributeItem}:\n
1123      * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.\n
1124      *
1125      */
1126     NODE_GRAY_SCALE,
1127     /**
1128      * @brief Inverts the image.
1129      * This attribute can be set, reset, and obtained as required through APIs.
1130      *
1131      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1132      * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.
1133      * For example, 0.5 indicates a 50% image inversion ratio.\n
1134      * \n
1135      * Format of the return value {@link ArkUI_AttributeItem}:\n
1136      * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.\n
1137      *
1138      */
1139     NODE_INVERT,
1140     /**
1141      * @brief Defines the sepia conversion ratio.
1142      * This attribute can be set, reset, and obtained as required through APIs.
1143      *
1144      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1145      * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.
1146      * For example, 0.5 indicates that a 50% sepia conversion ratio.\n
1147      * \n
1148      * Format of the return value {@link ArkUI_AttributeItem}:\n
1149      * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.\n
1150      *
1151      */
1152     NODE_SEPIA,
1153     /**
1154      * @brief Defines the contrast attribute, which can be set, reset, and obtained as required through APIs.
1155      *
1156      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1157      * .value[0].f32: contrast. If the value is <b>1</b>, the source image is displayed.
1158      * A larger value indicates a higher contrast. Value range: [0, 10).\n
1159      * \n
1160      * Format of the return value {@link ArkUI_AttributeItem}:\n
1161      * .value[0].f32: contrast. Value range: [0, 10).\n
1162      *
1163      */
1164     NODE_CONTRAST,
1165     /**
1166      * @brief Defines the foreground color attribute, which can be set, reset, and obtained as required through APIs.
1167      *
1168      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
1169      * 1: .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
1170      * 2: .value[0].i32: color enum {@link ArkUI_ColoringStrategy}.\n
1171      * \n
1172      * Format of the return value {@link ArkUI_AttributeItem}:\n
1173      * .value[0].u32: color value, in 0xARGB format.\n
1174      *
1175      */
1176     NODE_FOREGROUND_COLOR,
1177 
1178     /**
1179      * @brief Defines the offset of the component's child relative to the component.
1180      * This attribute can be set, reset, and obtained as required through APIs.
1181      *
1182      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1183      * .value[0].f32 : offset along the x-axis, in vp. \n
1184      * .value[1].f32 : offset along the y-axis, in vp. \n
1185      * \n
1186      * Format of the return value {@link ArkUI_AttributeItem}:\n
1187      * .value[0].f32 : offset along the x-axis, in vp. \n
1188      * .value[1].f32 : offset along the y-axis, in vp. \n
1189      *
1190      */
1191     NODE_OFFSET,
1192     /**
1193      * @brief Sets the anchor for locating the component's child.
1194      * This attribute can be set, reset, and obtained as required through APIs.
1195      *
1196      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1197      * .value[0].f32: X coordinate of the anchor, in vp.\n
1198      * .value[1].f32: Y coordinate of the anchor, in vp.\n
1199      * \n
1200      * Format of the return value {@link ArkUI_AttributeItem}:\n
1201      * .value[0].f32: X coordinate of the anchor, in vp.\n
1202      * .value[1].f32: Y coordinate of the anchor, in vp.\n
1203      *
1204      */
1205     NODE_MARK_ANCHOR,
1206     /**
1207      * @brief Defines the position of the background image in the component, that is, the coordinates relative to
1208      * the upper left corner of the component. This attribute can be set, reset, and obtained as required through APIs.
1209      *
1210      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1211      * .value[0].f32: position along the x-axis, in px. \n
1212      * .value[1].f32: position along the y-axis, in px. \n
1213      * \n
1214      * Format of the return value {@link ArkUI_AttributeItem}:\n
1215      * .value[0].f32: position along the x-axis, in px. \n
1216      * .value[1].f32: position along the y-axis, in px. \n
1217      *
1218      */
1219     NODE_BACKGROUND_IMAGE_POSITION,
1220     /**
1221      * @brief Sets the alignment rules in the relative container.
1222      * This attribute can be set, reset, and obtained as required through APIs.
1223      *
1224      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1225      * .value[0]?.i32: ID of the component that functions as the anchor point for left alignment. \n
1226      * .value[1]?.i32: alignment mode relative to the anchor component for left alignment.
1227      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1228      * .value[2]?.i32: ID of the component that functions as the anchor point for center alignment. \n
1229      * .value[3]?.i32: alignment mode relative to the anchor component for center alignment.
1230      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1231      * .value[4]?.i32: ID of the component that functions as the anchor point for right alignment. \n
1232      * .value[5]?.i32: alignment mode relative to the anchor component for right alignment.
1233      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1234      * .value[6]?.i32: ID of the component that functions as the anchor point for top alignment. \n
1235      * .value[7]?.i32: alignment mode relative to the anchor component for top alignment.
1236      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1237      * .value[8]?.i32: ID of the component that functions as the anchor point for center alignment in the
1238      * vertical direction. \n
1239      * .value[9]?.i32: alignment mode relative to the anchor component forcenter alignment in the vertical direction.
1240      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1241      * .value[10]?.i32: ID of the component that functions as the anchor point for bottom alignment. \n
1242      * .value[11]?.i32: alignment mode relative to the anchor component for bottom alignment.
1243      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1244      * .value[12]?.f32: bias value in the horizontal direction. \n
1245      * .value[13]?.f32: bias value in the vertical direction. \n
1246      * \n
1247      * Format of the return value {@link ArkUI_AttributeItem}:\n
1248      * .value[0].i32: ID of the component that functions as the anchor point for left alignment. \n
1249      * .value[1].i32: alignment mode relative to the anchor component for left alignment.
1250      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1251      * .value[2].i32: ID of the component that functions as the anchor point for center alignment. \n
1252      * .value[3].i32: alignment mode relative to the anchor component for center alignment.
1253      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1254      * .value[4].i32: ID of the component that functions as the anchor point for right alignment. \n
1255      * .value[5].i32: alignment mode relative to the anchor component for right alignment.
1256      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1257      * .value[6].i32: ID of the component that functions as the anchor point for top alignment. \n
1258      * .value[7].i32: alignment mode relative to the anchor component for top alignment.
1259      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1260      * .value[8].i32: ID of the component that functions as the anchor point for center alignment in the
1261      * vertical direction. \n
1262      * .value[9].i32: alignment mode relative to the anchor component forcenter alignment in the vertical direction.
1263      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1264      * .value[10].i32: ID of the component that functions as the anchor point for bottom alignment. \n
1265      * .value[11].i32: alignment mode relative to the anchor component for bottom alignment.
1266      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1267      * .value[12].f32: bias value in the horizontal direction. \n
1268      * .value[13].f32: bias value in the vertical direction. \n
1269      *
1270      */
1271     NODE_ALIGN_RULES,
1272     /**
1273      * @brief Sets the alignment mode of the child components along the cross axis of the parent container.
1274      * This attribute can be set, reset, and obtained as required through APIs.
1275      *
1276      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1277      * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
1278      * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
1279      * \n
1280      * Format of the return value {@link ArkUI_AttributeItem}:\n
1281      * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
1282      * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
1283      *
1284      */
1285     NODE_ALIGN_SELF,
1286     /**
1287      * @brief Sets the percentage of the parent container's remaining space that is allocated to the component.
1288      * This attribute can be set, reset, and obtained as required through APIs.
1289      *
1290      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1291      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1292      * \n
1293      * Format of the return value {@link ArkUI_AttributeItem}:\n
1294      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1295      *
1296      */
1297     NODE_FLEX_GROW,
1298     /**
1299      * @brief Sets the percentage of the parent container's shrink size that is allocated to the component.
1300      * This attribute can be set, reset, and obtained as required through APIs.
1301      *
1302      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1303      * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
1304      * \n
1305      * Format of the return value {@link ArkUI_AttributeItem}:\n
1306      * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
1307      *
1308      */
1309     NODE_FLEX_SHRINK,
1310     /**
1311      * @brief Sets the base size of the component.
1312      * This attribute can be set, reset, and obtained as required through APIs.
1313      *
1314      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1315      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1316      * \n
1317      * Format of the return value {@link ArkUI_AttributeItem}:\n
1318      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1319      *
1320      */
1321     NODE_FLEX_BASIS,
1322     /**
1323      * @brief Sets the accessibility group. This attribute can be set, reset, and obtained as required through APIs.
1324      *
1325      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1326      * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
1327      * form an entire selectable component.
1328      * In this case, the accessibility service will no longer be available for the content of its child components.
1329      * The value is <b>1</b> or <b>0</b>.
1330      * \n
1331      * Format of the return value {@link ArkUI_AttributeItem}:\n
1332      * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
1333      * form an entire selectable component.
1334      * In this case, the accessibility service will no longer be available for the content of its child components.
1335      * The value is <b>1</b> or <b>0</b>.
1336      *
1337      */
1338     NODE_ACCESSIBILITY_GROUP,
1339 
1340     /**
1341      * @brief Sets the accessibility text. 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      * .string: accessibility text.
1345      * \n
1346      * Format of the return value {@link ArkUI_AttributeItem}:\n
1347      * .string: accessibility text.
1348      *
1349      */
1350     NODE_ACCESSIBILITY_TEXT,
1351 
1352     /**
1353      * @brief Sets the accessibility mode. This attribute can be set, reset, and obtained as required through APIs.
1354      *
1355      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1356      * .value[0].i32: accessibility mode. The parameter type is {@link ArkUI_AccessibilityMode}.
1357      * \n
1358      * Format of the return value {@link ArkUI_AttributeItem}:\n
1359      * .value[0].i32: accessibility mode. The parameter type is {@link ArkUI_AccessibilityMode}.
1360      *
1361      */
1362     NODE_ACCESSIBILITY_MODE,
1363 
1364     /**
1365      * @brief Sets the accessibility description.
1366      * This attribute can be set, reset, and obtained as required through APIs.
1367      *
1368      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1369      * .string: accessibility description.
1370      * \n
1371      * Format of the return value {@link ArkUI_AttributeItem}:\n
1372      * .string: accessibility description.
1373      *
1374      */
1375     NODE_ACCESSIBILITY_DESCRIPTION,
1376 
1377     /**
1378      * @brief Defines the focused state. This attribute can be set and obtained as required through APIs.
1379      *
1380      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1381      * .value[0].i32: The parameter type is 1 or 0.
1382      * \n
1383      * Format of the return value {@link ArkUI_AttributeItem}:\n
1384      * .value[0].i32: The parameter type is 1 or 0.
1385      *
1386      */
1387     NODE_FOCUS_STATUS,
1388     /**
1389      * @brief Defines the aspect ratio attribute, which can be set, reset, and obtained as required through APIs.
1390      *
1391      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1392      * .value[0].f32: aspect ratio of the component, in width/height format. \n
1393      * \n
1394      * Format of the return value {@link ArkUI_AttributeItem}:\n
1395      * .value[0].f32: aspect ratio of the component, in width/height format. \n
1396      *
1397      */
1398     NODE_ASPECT_RATIO,
1399     /**
1400      * @brief Defines the weight of the component within its row, column, or flex container for proportional
1401      * distribution of available space within the container.
1402      * This attribute can be set, reset, and obtained as required through APIs.
1403      *
1404      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1405      * .value[0].f32: weight of the component along the main axis. \n
1406      * \n
1407      * Format of the return value {@link ArkUI_AttributeItem}:\n
1408      * .value[0].f32: weight of the component along the main axis. \n
1409      *
1410      */
1411     NODE_LAYOUT_WEIGHT,
1412     NODE_DISPLAY_PRIORITY,
1413     NODE_OUTLINE_WIDTH,
1414     /**
1415      * @brief 宽度属性,支持属性设置,属性重置和属性获取接口。
1416      *
1417      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
1418      * .value[0].f32:宽度数值,单位为百分比;\n
1419      * \n
1420      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
1421      * .value[0].f32:宽度数值,单位为百分比;\n
1422      *
1423      */
1424     NODE_WIDTH_PERCENT,
1425     /**
1426      * @brief 高度属性,支持属性设置,属性重置和属性获取接口。
1427      *
1428      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
1429      * .value[0].f32:高度数值,单位为百分比;\n
1430      * \n
1431      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
1432      * .value[0].f32:高度数值,单位为百分比;\n
1433      *
1434      */
1435     NODE_HEIGHT_PERCENT,
1436     /**
1437      * @brief 内间距属性,支持属性设置,属性重置和属性获取接口。
1438      *
1439      * 属性设置方法参数{@link ArkUI_AttributeItem}格式有两种:\n
1440      * 1:上下左右四个位置的内间距值相等。\n
1441      * .value[0].f32:内间距数值,单位为百分比;\n
1442      * 2:分别指定上下左右四个位置的内间距值。\n
1443      * .value[0].f32:上内间距数值,单位为百分比;\n
1444      * .value[1].f32:右内间距数值,单位为百分比;\n
1445      * .value[2].f32:下内间距数值,单位为百分比;\n
1446      * .value[3].f32:左内间距数值,单位为百分比;\n
1447      * \n
1448      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
1449      * .value[0].f32:上内间距数值,单位为百分比;\n
1450      * .value[1].f32:右内间距数值,单位为百分比;\n
1451      * .value[2].f32:下内间距数值,单位为百分比;\n
1452      * .value[3].f32:左内间距数值,单位为百分比;\n
1453      *
1454      */
1455     NODE_PADDING_PERCENT,
1456     /**
1457      * @brief 外间距属性,支持属性设置,属性重置和属性获取接口。
1458      *
1459      * 属性设置方法参数{@link ArkUI_AttributeItem}格式有两种:\n
1460      * 1:上下左右四个位置的外间距值相等。\n
1461      * .value[0].f32:外间距数值,单位为百分比;\n
1462      * 2:分别指定上下左右四个位置的外间距值。\n
1463      * .value[0].f32:上外间距数值,单位为百分比;\n
1464      * .value[1].f32:右外间距数值,单位为百分比;\n
1465      * .value[2].f32:下外间距数值,单位为百分比;\n
1466      * .value[3].f32:左外间距数值,单位为百分比;\n
1467      * \n
1468      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
1469      * .value[0].f32:上外间距数值,单位为百分比;\n
1470      * .value[1].f32:右外间距数值,单位为百分比;\n
1471      * .value[2].f32:下外间距数值,单位为百分比;\n
1472      * .value[3].f32:左外间距数值,单位为百分比;\n
1473      *
1474      */
1475     NODE_MARGIN_PERCENT,
1476 
1477     NODE_GEOMETRY_TRANSITION,
1478 
1479     /**
1480      * @brief 指定以该组件为链头所构成的链的参数,支持属性设置、属性重置和属性获取接口。
1481      *
1482      * 仅当父容器为RelativeContainer时生效
1483      *
1484      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
1485      * .value[0].i32:链的方向。枚举{@link ArkUI_Axis}。 \n
1486      * .value[1].i32:链的样式。枚举{@link ArkUI_RelativeLayoutChainStyle}。 \n
1487      * \n
1488      * .value[0].i32:链的方向。枚举{@link ArkUI_Axis}。 \n
1489      * .value[1].i32:链的样式。枚举{@link ArkUI_RelativeLayoutChainStyle}。 \n
1490      */
1491     NODE_RELATIVE_LAYOUT_CHAIN_MODE,
1492 
1493     NODE_RENDER_FIT,
1494 
1495     NODE_OUTLINE_COLOR,
1496 
1497     NODE_SIZE,
1498 
1499     NODE_RENDER_GROUP,
1500 
1501     NODE_COLOR_BLEND,
1502 
1503     NODE_FOREGROUND_BLUR_STYLE,
1504 
1505     NODE_LAYOUT_RECT,
1506 
1507     NODE_FOCUS_ON_TOUCH,
1508 
1509     /**
1510      * @brief 边框宽度属性,支持属性设置,属性重置和属性获取接口。
1511      *
1512      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
1513      * 1: .value[0].f32:统一设置四条边的边框宽度,单位为百分比。 \n
1514      * 2: .value[0].f32:设置上边框的边框宽度,单位为百分比。 \n
1515      * .value[1].f32:设置右边框的边框宽度,单位为百分比。 \n
1516      * .value[2].f32:设置下边框的边框宽度,单位为百分比。 \n
1517      * .value[3].f32:设置左边框的边框宽度,单位为百分比。 \n
1518      * \n
1519      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
1520      * .value[0].f32:设置上边框的边框宽度,单位为百分比。 \n
1521      * .value[1].f32:设置右边框的边框宽度,单位为百分比。 \n
1522      * .value[2].f32:设置下边框的边框宽度,单位为百分比。 \n
1523      * .value[3].f32:设置左边框的边框宽度,单位为百分比。 \n
1524      *
1525      */
1526     NODE_BORDER_WIDTH_PERCENT,
1527     /**
1528      * @brief 边框圆角属性,支持属性设置,属性重置和属性获取接口。
1529      *
1530      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
1531      * 1: .value[0].f32:统一设置四条边的边框圆角半径,单位为百分比。 \n
1532      * 2: .value[0].f32:设置左上角圆角半径,单位为百分比。 \n
1533      * .value[1].f32:设置右上角圆角半径,单位为百分比。 \n
1534      * .value[2].f32:设置左下角圆角半径,单位为百分比。 \n
1535      * .value[3].f32:设置右下角圆角半径,单位为百分比。 \n
1536      * \n
1537      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
1538      * .value[0].f32:设置左上角圆角半径,单位为百分比。 \n
1539      * .value[1].f32:设置右上角圆角半径,单位为百分比。 \n
1540      * .value[2].f32:设置左下角圆角半径,单位为百分比。 \n
1541      * .value[3].f32:设置右下角圆角半径,单位为百分比。 \n
1542      *
1543      */
1544     NODE_BORDER_RADIUS_PERCENT,
1545 
1546     /**
1547      * @brief Accessible ID, which can be obtained as required through APIs.
1548      *
1549      * Format of the return value {@link ArkUI_AttributeItem}:\n
1550      * .value[0].i32:Accessible ID。\n
1551      *
1552      */
1553     NODE_ACCESSIBILITY_ID = 87,
1554 
1555     /**
1556      * @brief Define accessible actions, which can be set, reset, and obtained as required through APIs.
1557      *
1558      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1559      * .value[0].u32:accessible action types,and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
1560      * \n
1561      * Format of the return value {@link ArkUI_AttributeItem}:\n
1562      * .value[0].u32:accessible action types,and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
1563      *
1564      */
1565     NODE_ACCESSIBILITY_ACTIONS = 88,
1566 
1567     /**
1568      * @brief Define accessible role, which can be set, reset, and obtained as required through APIs.
1569      *
1570      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1571      * .value[0].u32:accessible role type,and uses the {@link ArkUI_NodeType} enumeration value.\n
1572      * \n
1573      * Format of the return value {@link ArkUI_AttributeItem}:\n
1574      * .value[0].u32:accessible role type,and uses the {@link ArkUI_NodeType} enumeration value.\n
1575      *
1576      */
1577     NODE_ACCESSIBILITY_ROLE = 89,
1578 
1579     /**
1580      * @brief Define accessible state, which can be set, reset, and obtained as required through APIs.
1581      *
1582      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1583      * .object:the parameter type is {@link ArkUI_AccessibilityState}.\n
1584      * \n
1585      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1586      * .object:the parameter type is {@link ArkUI_AccessibilityState}.\n
1587      *
1588      */
1589     NODE_ACCESSIBILITY_STATE = 90,
1590 
1591     /**
1592      * @brief Define accessible value, which can be set, reset, and obtained as required through APIs.
1593      *
1594      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1595      * .object:the parameter type is {@link ArkUI_AccessibilityValue}.\n
1596      * \n
1597      * Format of the return value {@link ArkUI_AttributeItem}:\n
1598      * .object:the parameter type is {@link ArkUI_AccessibilityValue}.\n
1599      *
1600      */
1601     NODE_ACCESSIBILITY_VALUE = 91,
1602 
1603     /**
1604      * @brief 定义控制组件扩展其安全区域,支持属性设置,属性重置和属性获取。
1605      *
1606      * 属性设置方法{@link ArkUI_AttributeItem}参数格式: \n
1607      * .value[0]?.u32:扩展安全区域的枚举值集合{@link ArkUI_SafeAreaType},
1608      * 例如:ARKUI_SAFE_AREA_TYPE_SYSTEM | ARKUI_SAFE_AREA_TYPE_CUTOUT;\n
1609      * .value[1]?.u32:扩展安全区域的方向枚举值集合{@link ArkUI_SafeAreaEdge};\n
1610      * 例如:ARKUI_SAFE_AREA_EDGE_TOP | ARKUI_SAFE_AREA_EDGE_BOTTOM;\n
1611      * \n
1612      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
1613      * .value[0].u32:扩展安全区域;\n。 \n
1614      * .value[1].u32:扩展安全区域的方向;\n。 \n
1615      *
1616      */
1617     NODE_EXPAND_SAFE_AREA = 92,
1618     /**
1619      * @brief Defines the visible area ratio (visible area/total area of the component) threshold for invoking the
1620      * visible area change event of the component.
1621      *
1622      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1623      * .value[...].f32: threshold array. The value range is 0 to 1.
1624      * \n
1625      * Format of the return value {@link ArkUI_AttributeItem}:\n
1626      * .value[...].f32: threshold array. \n
1627      *
1628      */
1629     NODE_VISIBLE_AREA_CHANGE_RATIO = 93,
1630 
1631     /**
1632      * @brief 定义组件插入和删除时显示过渡动效,支持属性设置,属性获取。
1633      *
1634      * 属性设置方法{@link ArkUI_AttributeItem}参数格式: \n
1635      * .object:参数类型为{@link ArkUI_TransitionEffect}。 \n
1636      * \n
1637      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
1638      * .object:参数类型为{@link ArkUI_TransitionEffect}。 \n
1639      *
1640      */
1641     NODE_TRANSITION = 94,
1642 
1643     /**
1644      * @brief Defines the component ID.
1645      * This attribute can be obtained through APIs.
1646      *
1647      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:\n
1648      * .value[0].i32: component ID. \n
1649      *
1650      */
1651     NODE_UNIQUE_ID = 95,
1652 
1653     /**
1654      * @brief Set the current component system focus box style.
1655      *
1656      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
1657      * .value[0].f32: The distance between the focus box and the edge of the component. \n
1658      * Positive numbers represent the outer side, negative numbers represent the inner side. \n
1659      * Percentage is not supported. \n
1660      * .value[1].f32: Focus box width. Negative numbers and percentages are not supported. \n
1661      * .value[2].u32: Focus box color. \n
1662      * \n
1663      *
1664      */
1665     NODE_FOCUS_BOX = 96,
1666 
1667     /**
1668      * @brief Defines the moving distance limit for the component-bound tap gesture.
1669      * This attribute can be set as required through APIs.
1670      *
1671      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1672      * .value[0].f32: allowed moving distance of a finger, in vp. \n
1673      *
1674      */
1675     NODE_CLICK_DISTANCE = 97,
1676 
1677     /**
1678      * @brief Defines the text content attribute, which can be set, reset, and obtained as required through APIs.
1679      *
1680      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1681      * .string: text content.\n
1682      * \n
1683      * Format of the return value {@link ArkUI_AttributeItem}:\n
1684      * .string: text content.\n
1685      */
1686     NODE_TEXT_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
1687     /**
1688      * @brief Defines the font color attribute, which can be set, reset, and obtained as required through APIs.
1689      *
1690      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1691      * .value[0].u32: font color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
1692      * \n
1693      * Format of the return value {@link ArkUI_AttributeItem}:\n
1694      * .value[0].u32: font color value, in 0xARGB format.\n
1695      *
1696      */
1697     NODE_FONT_COLOR,
1698     /**
1699      * @brief Defines the font size attribute, which can be set, reset, and obtained as required through APIs.
1700      *
1701      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1702      * .value[0].f32: font size, in fp.\n
1703      * \n
1704      * Format of the return value {@link ArkUI_AttributeItem}:\n
1705      * .value[0].f32: font size, in fp.\n
1706      *
1707      */
1708     NODE_FONT_SIZE,
1709     /**
1710      * @brief Defines the font style attribute, which can be set, reset, and obtained as required through APIs.
1711      *
1712      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1713      * .value[0].i32: font style {@link ArkUI_FontStyle}. The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
1714      * \n
1715      * Format of the return value {@link ArkUI_AttributeItem}:\n
1716      * .value[0].i32: font style {@link ArkUI_FontStyle}.\n
1717      *
1718      */
1719     NODE_FONT_STYLE,
1720     /**
1721      * @brief Defines the font weight attribute, which can be set, reset, and obtained as required through APIs.
1722      *
1723      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1724      * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
1725      * \n
1726      * Format of the return value {@link ArkUI_AttributeItem}:\n
1727      * .value[0].i32: font weight {@link ArkUI_FontWeight}.\n
1728      *
1729      */
1730     NODE_FONT_WEIGHT,
1731     /**
1732      * @brief Defines the text line height attribute, which can be set, reset, and obtained as required through APIs.
1733      *
1734      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1735      * .value[0].f32: line height, in fp.\n
1736      * \n
1737      * Format of the return value {@link ArkUI_AttributeItem}:\n
1738      * .value[0].f32: line height, in fp.\n
1739      *
1740      */
1741     NODE_TEXT_LINE_HEIGHT,
1742     /**
1743      * @brief Defines the text decoration style and color.
1744      * This attribute 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].i32: text decoration type {@link ArkUI_TextDecorationType}.
1748      * The default value is <b>ARKUI_TEXT_DECORATION_TYPE_NONE</b>.\n
1749      * .value[1]?.u32: text decoration color, in 0xARGB format. For example, 0xFFFF0000 indicates red. Optional.\n
1750      * .value[2]?.i32: text decoration style {@link ArkUI_TextDecorationStyle}. \n
1751      * \n
1752      * Format of the return value {@link ArkUI_AttributeItem}:\n
1753      * .value[0].i32: text decoration type {@link ArkUI_TextDecorationType}.\n
1754      * .value[1].u32: text decoration color, in 0xARGB format. \n
1755      * .value[2].i32: text decoration style {@link ArkUI_TextDecorationStyle}. \n
1756      *
1757      */
1758     NODE_TEXT_DECORATION,
1759     /**
1760      * @brief Defines the text case attribute, which can be set, reset, and obtained as required through APIs.
1761      *
1762      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1763      * .value[0].i32: text case.\n
1764      * \n
1765      * Format of the return value {@link ArkUI_AttributeItem}:\n
1766      * .value[0].i32: text case.\n
1767      *
1768      */
1769     NODE_TEXT_CASE,
1770     /**
1771      * @brief Defines the letter spacing attribute, which can be set, reset, and obtained as required through APIs.
1772      *
1773      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1774      * .value[0].f32: letter spacing, in fp.\n
1775      * \n
1776      * Format of the return value {@link ArkUI_AttributeItem}:\n
1777      * .value[0].f32: letter spacing, in fp.\n
1778      *
1779      */
1780     NODE_TEXT_LETTER_SPACING,
1781     /**
1782      * @brief Sets the maximum number of lines in the text.
1783      * This attribute can be set, reset, and obtained as required through APIs.
1784      *
1785      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1786      * .value[0].i32: maximum number of lines in the text.\n
1787      * \n
1788      * Format of the return value {@link ArkUI_AttributeItem}:\n
1789      * .value[0].i32: maximum number of lines in the text.\n
1790      *
1791      */
1792     NODE_TEXT_MAX_LINES,
1793     /**
1794      * @brief Horizontal alignment mode of the text.
1795      * This attribute can be set, reset, and obtained as required through APIs.
1796      *
1797      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1798      * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_TextAlignment}. \n
1799      * \n
1800      * Format of the return value {@link ArkUI_AttributeItem}:\n
1801      * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_TextAlignment}. \n
1802      *
1803      */
1804     NODE_TEXT_ALIGN,
1805     /**
1806      * @brief Defines the text overflow attribute, which can be set, reset, and obtained as required through APIs.
1807      *
1808      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1809      * .value[0].i32: display mode when the text is too long {@link ArkUI_TextOverflow}. \n
1810      * \n
1811      * Format of the return value {@link ArkUI_AttributeItem}:\n
1812      * .value[0].i32: display mode when the text is too long {@link ArkUI_TextOverflow}. \n
1813      *
1814      */
1815     NODE_TEXT_OVERFLOW,
1816     /**
1817      * @brief Defines the font family attribute, which can be set, reset, and obtained as required through APIs.
1818      *
1819      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1820      * .string: fonts, separated by commas (,).
1821      * \n
1822      * Format of the return value {@link ArkUI_AttributeItem}:\n
1823      * .string: fonts, separated by commas (,).
1824      *
1825      */
1826     NODE_FONT_FAMILY,
1827     /**
1828      * @brief Defines the copy option attribute, which can be set, reset, and obtained as required through APIs.
1829      *
1830      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1831      * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The default value is <b>ARKUI_COPY_OPTIONS_NONE</b>.\n
1832      * \n
1833      * Format of the return value {@link ArkUI_AttributeItem}:\n
1834      * .value[0].i32: copy option {@link ArkUI_CopyOptions. \n
1835      *
1836      */
1837     NODE_TEXT_COPY_OPTION,
1838     /**
1839      * @brief Defines the text baseline offset attribute
1840      * This attribute can be set, reset, and obtained as required through APIs.
1841      *
1842      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1843      * .value[0].f32: baseline offset, in fp.\n
1844      * \n
1845      * Format of the return value {@link ArkUI_AttributeItem}:\n
1846      * .value[0].f32: baseline offset, in fp. \n
1847      *
1848      */
1849     NODE_TEXT_BASELINE_OFFSET,
1850     /**
1851      * @brief Defines the text shadow attribute, which can be set, reset, and obtained as required through APIs.
1852      *
1853      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1854      * .value[0].f32: blur radius of the shadow, in vp.\n
1855      * .value[1].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
1856      * .value[2].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
1857      * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
1858      * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
1859      * \n
1860      * Format of the return value {@link ArkUI_AttributeItem}:\n
1861      * .value[0].f32: blur radius of the shadow, in vp.\n
1862      * .value[1].i32: shadow type {@link ArkUI_ShadowType}.\n
1863      * .value[2].u32: shadow color, in 0xARGB format.\n
1864      * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
1865      * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
1866      *
1867      */
1868     NODE_TEXT_TEXT_SHADOW,
1869     /**
1870      * @brief Defines the minimum font size attribute, which can be set, reset, and obtained as required through APIs.
1871      *
1872      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1873      * .value[0].f32: minimum font size, in fp.
1874      * \n
1875      * Format of the return value {@link ArkUI_AttributeItem}:\n
1876      * .value[0].f32: minimum font size, in fp.
1877      *
1878      */
1879     NODE_TEXT_MIN_FONT_SIZE,
1880 
1881     /**
1882      * @brief Defines the maximum font size attribute, which can be set, reset, and obtained as required through APIs.
1883      *
1884      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1885      * .value[0].f32: maximum font size, in fp.
1886      * \n
1887      * Format of the return value {@link ArkUI_AttributeItem}:\n
1888      * .value[0].f32: maximum font size, in fp.
1889      *
1890      */
1891     NODE_TEXT_MAX_FONT_SIZE,
1892 
1893     /**
1894      * @brief Defines the text style attribute, which can be set, reset, and obtained as required through APIs.
1895      *
1896      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1897      * .string?: font family. Optional. Use commas (,) to separate multiple fonts. \n
1898      * .value[0].f32: font size, in fp. \n
1899      * .value[1]?.i32: font weight. Optional. The parameter type is {@link ArkUI_FontWeight}.
1900      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
1901      * .value[2]?.i32: font style. Optional. The parameter type is {@link ArkUI_FontStyle}.
1902      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
1903      * \n
1904      * Format of the return value {@link ArkUI_AttributeItem}:\n
1905      * .string: font family. Use commas (,) to separate multiple fonts. \n
1906      * .value[0].f32: font size, in fp. \n
1907      * .value[1].i32: font weight. The parameter type is {@link ArkUI_FontWeight}.
1908      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
1909      * .value[2].i32: font style. The parameter type is {@link ArkUI_FontStyle}.
1910      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
1911      *
1912      */
1913     NODE_TEXT_FONT,
1914 
1915     /**
1916      * @brief Defines how the adaptive height is determined for the text.
1917      * This attribute can be set, reset, and obtained as required through APIs.
1918      *
1919      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1920      * .value[0].i32: how the adaptive height is determined for the text.
1921      * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}.
1922      * \n
1923      * Format of the return value {@link ArkUI_AttributeItem}:\n
1924      * .value[0].i32: how the adaptive height is determined for the text.
1925      * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}
1926      *
1927      */
1928     NODE_TEXT_HEIGHT_ADAPTIVE_POLICY,
1929     /**
1930      * @brief Defines the indentation of the first line.
1931      * This attribute can be set, reset, and obtained as required through APIs.
1932      *
1933      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1934      * .value[0].f32: indentation of the first line. \n
1935      * \n
1936      * Format of the return value {@link ArkUI_AttributeItem}:\n
1937      * .value[0].f32: indentation of the first line. \n
1938      *
1939      */
1940     NODE_TEXT_INDENT,
1941     /**
1942      * @brief Defines the line break rule. This attribute can be set, reset, and obtained as required through APIs.
1943      *
1944      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1945      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
1946      * \n
1947      * Format of the return value {@link ArkUI_AttributeItem}:\n
1948      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
1949      *
1950      */
1951     NODE_TEXT_WORD_BREAK,
1952     /**
1953      * @brief Defines the ellipsis position. This attribute can be set, reset, and obtained as required through APIs.
1954      *
1955      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1956      * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
1957      * \n
1958      * Format of the return value {@link ArkUI_AttributeItem}:\n
1959      * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
1960      *
1961      */
1962     NODE_TEXT_ELLIPSIS_MODE,
1963     /**
1964      * @brief Defines the text line spacing attribute, which can be set, reset, and obtained as required through APIs.
1965      *
1966      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1967      * .value[0].f32: line spacing, in fp.\n
1968      * \n
1969      * Format of the return value {@link ArkUI_AttributeItem}:\n
1970      * .value[0].f32: line spacing, in fp.\n
1971      *
1972      */
1973     NODE_TEXT_LINE_SPACING,
1974     /**
1975      * @brief  Set the text feature effect and the NODE_FONT_FEATURE attribute,
1976      * NODE_FONT_FEATURE is the advanced typesetting capability of OpenType
1977      * Features such as ligatures and equal-width digits are generally used in customized fonts. \n
1978      * The capabilities need to be supported by the fonts, \n
1979      * Interfaces for setting, resetting, and obtaining attributes are supported. \n
1980      * Attribute setting method parameter {@Link ArkUI_AttributeItem} format: \n
1981      * .string: complies with the text feature format. The format is normal | \n
1982      * is in the format of [ | on | off],\n.
1983      * There can be multiple values separated by commas (,). \n
1984      * For example, the input format of a number with the same width is ss01 on. \n
1985      * \n
1986      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
1987      * .string indicates the content of the text feature. Multiple text features are separated by commas (,). \n
1988      */
1989     NODE_TEXT_FONT_FEATURE,
1990 
1991     /**
1992      * @brief 设置使能文本识别。
1993      *
1994      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
1995      * .value[0].i32:使能文本识别,默认值false。\n
1996      * \n
1997      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
1998      * .value[0].i32:使能文本识别。\n
1999      *
2000      */
2001     NODE_TEXT_ENABLE_DATA_DETECTOR,
2002     /**
2003      * @brief 设置文本识别配置。
2004      *
2005      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2006      * .value[0...].i32: 实体类型数组,参数类型{@link ArkUI_TextDataDetectorType}。\n
2007      * \n
2008      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2009      * .value[0...].i32:实体类型数组,参数类型{@link ArkUI_TextDataDetectorType}。\n
2010      *
2011      */
2012     NODE_TEXT_ENABLE_DATA_DETECTOR_CONFIG,
2013     /**
2014      * @brief 文本选中时的背景色属性,支持属性设置,属性重置和属性获取接口。
2015      *
2016      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2017      * .value[0].u32:颜色数值,0xargb格式,形如 0xFFFF0000 表示红色。\n
2018      * \n
2019      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2020      * .value[0].u32:颜色数值,0xargb格式。\n
2021      *
2022      */
2023     NODE_TEXT_SELECTED_BACKGROUND_COLOR,
2024 
2025     /**
2026     * @brief The text component uses a formatted string object to set text content properties,
2027     * and supports property setting, property reset, and property acquisition interfaces.
2028     *
2029     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2030     * .object indicates ArkUI_StyledString formatted string data. The parameter type is {@link ArkUI_StyledString}. \n
2031     * \n
2032     * Format of the return value {@link ArkUI_AttributeItem}:\n
2033     * .object indicates ArkUI_StyledString formatted string data. The parameter type is {@link ArkUI_StyledString}. \n
2034     */
2035     NODE_TEXT_CONTENT_WITH_STYLED_STRING,
2036 
2037     /**
2038      * @brief 设置文本居中显示。
2039      *
2040      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2041      * .value[0].i32:文本是否居中,默认值false。\n
2042      * \n
2043      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2044      * .value[0].i32:文本是否居中。\n
2045      *
2046      */
2047     NODE_TEXT_HALF_LEADING = 1029,
2048 
2049     /**
2050      * @brief Defines the text content attribute, which can be set, reset, and obtained as required through APIs.
2051      *
2052      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2053      * .string: content of the text span. \n
2054      * \n
2055      * Format of the return value {@link ArkUI_AttributeItem}:\n
2056      * .string: content of the text span. \n
2057      *
2058      */
2059     NODE_SPAN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SPAN,
2060     /**
2061      * @brief Defines the text background style.
2062      * This attribute can be set, reset, and obtained as required through APIs.
2063      *
2064      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2065      * .value[0].u32: color of the text background, in 0xARGB format, for example, <b>0xFFFF0000</b> indicating red. \n
2066      * The second parameter indicates the rounded corners of the text background. Two setting modes are available: \n
2067      * 1: .value[1].f32: radius of the four corners, in vp. \n
2068      * 2: .value[1].f32: radius of the upper left corner, in vp. \n
2069      * .value[2].f32: radius of the upper right corner, in vp. \n
2070      * .value[3].f32: radius of the lower left corner, in vp. \n
2071      * .value[4].f32: radius of the lower right corner, in vp. \n
2072      * \n
2073      * Format of the return value {@link ArkUI_AttributeItem}:\n
2074      * .value[0].u32: color of the text background, in 0xARGB format. \n
2075      * .value[1].f32: radius of the upper left corner, in vp. \n
2076      * .value[2].f32: radius of the upper right corner, in vp. \n
2077      * .value[3].f32: radius of the lower left corner, in vp. \n
2078      * .value[4].f32: radius of the lower right corner, in vp. \n
2079      *
2080      */
2081     NODE_SPAN_TEXT_BACKGROUND_STYLE,
2082     NODE_SPAN_BASELINE_OFFSET,
2083     /**
2084      * @brief Defines the image source of the image span.
2085      * This attribute can be set, reset, and obtained as required through APIs.
2086      *
2087      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2088      * .string: image address of the image span.\n
2089      * \n
2090      * Format of the return value {@link ArkUI_AttributeItem}:\n
2091      * .string: image address of the image span.\n
2092      *
2093      */
2094     NODE_IMAGE_SPAN_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_SPAN,
2095     /**
2096      * @brief Defines the alignment mode of the image with the text.
2097      * This attribute can be set, reset, and obtained as required through APIs.
2098      *
2099      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2100      * .value[0].i32: alignment mode of the image with the text.
2101      * The value is an enum of {@link ArkUI_ImageSpanAlignment}. \n
2102      * \n
2103      * Format of the return value {@link ArkUI_AttributeItem}:\n
2104      * .value[0].i32: alignment mode of the image with the text.
2105      * The value is an enum of {@link ArkUI_ImageSpanAlignment}. \n
2106      *
2107      */
2108     NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT,
2109     NODE_IMAGE_SPAN_ALT,
2110     /**
2111      * @brief Defines the image span baseline offset attribute
2112      * This attribute can be set, reset, and obtained as required through APIs.
2113      *
2114      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2115      * .value[0].f32: baseline offset, in fp.\n
2116      * \n
2117      * Format of the return value {@link ArkUI_AttributeItem}:\n
2118      * .value[0].f32: baseline offset, in fp. \n
2119      *
2120      */
2121     NODE_IMAGE_SPAN_BASELINE_OFFSET = 3003,
2122     /**
2123      * @brief Defines the image source of the <Image> component.
2124      * This attribute can be set, reset, and obtained as required through APIs.
2125      *
2126      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2127      * .string: image source.\n
2128      * \n
2129      * Format of the return value {@link ArkUI_AttributeItem}:\n
2130      * .string: image source.\n
2131      *
2132      */
2133     NODE_IMAGE_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
2134     /**
2135      * @brief Defines how the image is resized to fit its container.
2136      * This attribute can be set, reset, and obtained as required through APIs.
2137      *
2138      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2139      * .value[0].i32: how the image is resized to fit its container. The value is an enum of {@link ArkUI_ObjectFit}. \n
2140      * \n
2141      * Format of the return value {@link ArkUI_AttributeItem}:\n
2142      * .value[0].i32: how the image is resized to fit its container. The value is an enum of {@link ArkUI_ObjectFit}. \n
2143      *
2144      */
2145     NODE_IMAGE_OBJECT_FIT,
2146     /**
2147      * @brief Defines the interpolation effect of the image.
2148      * This attribute can be set, reset, and obtained as required through APIs.
2149      *
2150      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2151      * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
2152      * \n
2153      * Format of the return value {@link ArkUI_AttributeItem}:\n
2154      * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
2155      *
2156      */
2157     NODE_IMAGE_INTERPOLATION,
2158     /**
2159      * @brief Defines how the image is repeated.
2160      * This attribute can be set, reset, and obtained as required through APIs.
2161      *
2162      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2163      * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
2164      * \n
2165      * Format of the return value {@link ArkUI_AttributeItem}:\n
2166      * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
2167      *
2168      */
2169     NODE_IMAGE_OBJECT_REPEAT,
2170     /**
2171      * @brief Defines the color filter of the image.
2172      * This attribute can be set, reset, and obtained as required through APIs.
2173      *
2174      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2175      * .value[0].f32 to .value[19].f32: filter matrix array. \n
2176      * .size: 5 x 4 filter array size. \n
2177      * .object: the pointer to OH_Drawing_ColorFilter. Either .value or .object is set. \n
2178      * \n
2179      * Format of the return value {@link ArkUI_AttributeItem}:\n
2180      * .value[0].f32 to .value[19].f32: filter matrix array. \n
2181      * .size: 5 x 4 filter array size. \n
2182      * .object: the pointer to OH_Drawing_ColorFilter. \n
2183      *
2184      */
2185     NODE_IMAGE_COLOR_FILTER,
2186     /**
2187      * @brief Defines the auto resize attribute, which can be set, reset, and obtained as required through APIs.
2188      *
2189      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2190      * .value[0].i32 : whether to resize the image source. \n
2191      * \n
2192      * Format of the return value {@link ArkUI_AttributeItem}:\n
2193      * .value[0].i32 : whether to resize the image source. \n
2194      *
2195      */
2196     NODE_IMAGE_AUTO_RESIZE,
2197     /**
2198      * @brief Defines the placeholder image source.
2199      * This attribute can be set, reset, and obtained as required through APIs.
2200      *
2201      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2202      * .string: placeholder image source. \n
2203      * \n
2204      * Format of the return value {@link ArkUI_AttributeItem}:\n
2205      * .string: placeholder image source. \n
2206      *
2207      */
2208     NODE_IMAGE_ALT,
2209     /**
2210      * @brief Defines whether the image is draggable.
2211      * This attribute can be set, reset, and obtained as required through APIs.
2212      *
2213      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2214      * .value[0].i32: whether the image is draggable. The value <b>true</b> means that the image is draggable. \n
2215      * \n
2216      * Format of the return value {@link ArkUI_AttributeItem}:\n
2217      * .value[0].i32: whether the image is draggable. \n
2218      *
2219      */
2220     NODE_IMAGE_DRAGGABLE,
2221     /**
2222      * @brief Defines the image rendering mode. This attribute can be set, reset, and obtained as required through APIs.
2223      *
2224      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2225      * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
2226      * \n
2227      * Format of the return value {@link ArkUI_AttributeItem}:\n
2228      * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
2229      *
2230      */
2231     NODE_IMAGE_RENDER_MODE,
2232     /**
2233      * @brief 设置图片的显示尺寸是否跟随图源尺寸,支持属性设置,属性重置和属性获取接口。
2234      *
2235      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2236      * .value[0].i32,设置图片的显示尺寸是否跟随图源尺寸,1表示跟随,0表示不跟随,默认值为0。\n
2237      * \n
2238      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2239      * .value[0].i32,1表示图片的显示尺寸跟随图源尺寸,0表示图片的显示尺寸不跟随图源尺寸。\n
2240      *
2241      */
2242     NODE_IMAGE_FIT_ORIGINAL_SIZE,
2243     /**
2244      * @brief 设置填充颜色,设置后填充颜色会覆盖在图片上,支持属性设置,属性重置和属性获取接口。
2245      *
2246      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2247      * .value[0].u32:填充色数值,0xargb格式,形如 0xFFFF0000 表示红色。\n
2248      * \n
2249      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2250      * .value[0].u32:填充色数值,0xargb格式。\n
2251      *
2252      */
2253     NODE_IMAGE_FILL_COLOR,
2254     /**
2255      * @brief Sets the resizable image options.
2256      *
2257      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2258      * .value[0].f32: width of the left edge. The unit is vp. \n
2259      * .value[1].f32: width of the top edge. The unit is vp. \n
2260      * .value[2].f32: width of the right edge. The unit is vp. \n
2261      * .value[3].f32: width of the bottom edge. The unit is vp. \n
2262      * \n
2263      * Format of the return value {@link ArkUI_AttributeItem}:\n
2264      * .value[0].f32: width of the left edge. The unit is vp. \n
2265      * .value[1].f32: width of the top edge. The unit is vp. \n
2266      * .value[2].f32: width of the right edge. The unit is vp. \n
2267      * .value[3].f32: width of the bottom edge. The unit is vp. \n
2268      *
2269      */
2270     NODE_IMAGE_RESIZABLE,
2271     /**
2272      * @brief Defines the color of the component when it is selected.
2273      * This attribute can be set, reset, and obtained as required through APIs.
2274      *
2275      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2276      * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2277      * \n
2278      * Format of the return value {@link ArkUI_AttributeItem}:\n
2279      * .value[0].u32: background color, in 0xARGB format. \n
2280      *
2281      */
2282     NODE_TOGGLE_SELECTED_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
2283     /**
2284      * @brief Defines the color of the circular slider for the component of the switch type.
2285      * This attribute can be set, reset, and obtained as required through APIs.
2286      *
2287      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2288      * .value[0].u32: color of the circular slider, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2289      * \n
2290      * Format of the return value {@link ArkUI_AttributeItem}:\n
2291      * .value[0].u32: color of the circular slider, in 0xARGB format. \n
2292      *
2293      */
2294     NODE_TOGGLE_SWITCH_POINT_COLOR,
2295     /**
2296      * @brief Defines the toggle switch value. This attribute can be set, reset, and obtained as required through APIs.
2297      *
2298      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2299      * .value[0].i32: whether to enable the toggle. The value <b>true</b> means to enable the toggle. \n
2300      * \n
2301      * Format of the return value {@link ArkUI_AttributeItem}:\n
2302      * .value[0].i32: whether to enable the toggle. \n
2303      *
2304      */
2305     NODE_TOGGLE_VALUE,
2306     /**
2307      * @brief Defines the color of the component when it is deselected.
2308      * This attribute can be set, reset, and obtained as required through APIs.
2309      *
2310      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2311      * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2312      * \n
2313      * Format of the return value {@link ArkUI_AttributeItem}:\n
2314      * .value[0].u32: background color, in 0xARGB format. \n
2315      *
2316      */
2317     NODE_TOGGLE_UNSELECTED_COLOR,
2318 
2319     /**
2320      * @brief Defines the foreground color of the loading progress bar.
2321      * This attribute can be set, reset, and obtained as required through APIs.
2322      *
2323      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2324      * .value[0].u32: foreground color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2325      * \n
2326      * Format of the return value {@link ArkUI_AttributeItem}:\n
2327      * .value[0].u32: foreground color, in 0xARGB format. \n
2328      *
2329      */
2330     NODE_LOADING_PROGRESS_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LOADING_PROGRESS,
2331     /**
2332      * @brief Defines whether to show the loading animation for the <LoadingProgress> component.
2333      * This attribute can be set, reset, and obtained as required through APIs.
2334      *
2335      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2336      * .value[0].i32: whether to show the loading animation.
2337      * The value <b>true</b> means to show the loading animation, and <b>false</b> means the opposite.\n
2338      * \n
2339      * Format of the return value {@link ArkUI_AttributeItem}:\n
2340      * .value[0].i32: The value <b>1</b> means to show the loading animation, and <b>0</b> means the opposite. \n
2341      *
2342      */
2343     NODE_LOADING_PROGRESS_ENABLE_LOADING,
2344 
2345     /**
2346      * @brief Defines the default placeholder text of the single-line text box.
2347      * This attribute can be set, reset, and obtained as required through APIs.
2348      *
2349      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2350      * .string: default placeholder text. \n
2351      * \n
2352      * Format of the return value {@link ArkUI_AttributeItem}:\n
2353      * .string: default placeholder text. \n
2354      *
2355      */
2356     NODE_TEXT_INPUT_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
2357     /**
2358      * @brief Defines the default text content of the single-line text box.
2359      * This attribute can be set, reset, and obtained as required through APIs.
2360      *
2361      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2362      * .string: default text content. \n
2363      * \n
2364      * Format of the return value {@link ArkUI_AttributeItem}:\n
2365      * .string: default text content. \n
2366      *
2367      */
2368     NODE_TEXT_INPUT_TEXT,
2369     /**
2370      * @brief Defines the caret color attribute.
2371      * This attribute can be set, reset, and obtained as required through APIs.
2372      *
2373      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2374      * .value[0].u32: caret color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
2375      * \n
2376      * Format of the return value {@link ArkUI_AttributeItem}:\n
2377      * .value[0].u32: caret color, in 0xARGB format. \n
2378      *
2379      */
2380     NODE_TEXT_INPUT_CARET_COLOR,
2381     /**
2382      * @brief Defines the caret style attribute.
2383      * This attribute can be set, reset, and obtained as required through APIs.
2384      *
2385      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2386      * .value[0].f32: caret width, in vp.\n
2387      * \n
2388      * Format of the return value {@link ArkUI_AttributeItem}:\n
2389      * .value[0].f32: caret width, in vp. \n
2390      *
2391      */
2392     NODE_TEXT_INPUT_CARET_STYLE,
2393     /**
2394      * @brief Defines the underline attribute of the single-line text box.
2395      * This attribute can be set, reset, and obtained as required through APIs.
2396      *
2397      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2398      * .value[0].i32: whether to show an underline.
2399      * The value <b>true</b> means to show an underline, and <b>false</b> means the opposite.\n
2400      * \n
2401      * Format of the return value {@link ArkUI_AttributeItem}:\n
2402      * .value[0].i32: The value <b>1</b> means to show an underline, and <b>0</b> means the opposite. \n
2403      *
2404      */
2405     NODE_TEXT_INPUT_SHOW_UNDERLINE,
2406     /**
2407      * @brief Defines the maximum number of characters in the text input.
2408      * This attribute can be set, reset, and obtained as required through APIs.
2409      *
2410      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2411      * .value[0].i32: maximum number of characters in the text input, without a unit. \n
2412      * \n
2413      * Format of the return value {@link ArkUI_AttributeItem}:\n
2414      * .value[0].i32: maximum number of characters in the text input. \n
2415      *
2416      */
2417     NODE_TEXT_INPUT_MAX_LENGTH,
2418     /**
2419      * @brief Defines the type of the Enter key.
2420      * This attribute can be set, reset, and obtained as required through APIs.
2421      *
2422      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2423      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is
2424      * <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
2425      * \n
2426      * Format of the return value {@link ArkUI_AttributeItem}:\n
2427      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
2428      *
2429      */
2430     NODE_TEXT_INPUT_ENTER_KEY_TYPE,
2431     /**
2432      * @brief Defines the placeholder text color.
2433      * This attribute can be set, reset, and obtained as required through APIs.
2434      *
2435      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2436      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2437      * \n
2438      * Format of the return value {@link ArkUI_AttributeItem}:\n
2439      * .value[0].u32: color value, in 0xARGB format. \n
2440      *
2441      */
2442     NODE_TEXT_INPUT_PLACEHOLDER_COLOR,
2443     /**
2444      * @brief Defines the placeholder text font.
2445      * This attribute can be set, reset, and obtained as required through APIs.
2446      *
2447      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2448      * .value[0]?.f32: font size, in fp. Optional. The default value is <b>16.0</b>.\n
2449      * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optional.
2450      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>. \n
2451      * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional.
2452      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
2453      * ?.string: font family. Multiple font families are separated by commas (,).
2454      * Example: "font weight; font family 1, font family 2". \n
2455      * \n
2456      * Format of the return value {@link ArkUI_AttributeItem}:\n
2457      * .value[0].f32: font size, in fp.\n
2458      * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
2459      * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
2460      * .string: font family. Multiple font families are separated by commas (,). \n
2461      *
2462      */
2463     NODE_TEXT_INPUT_PLACEHOLDER_FONT,
2464     /**
2465      * @brief Defines whether to enable the input method when the component obtains focus.
2466      * This attribute can be set, reset, and obtained as required through APIs.
2467      *
2468      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2469      * .value[0].i32: whether to enable the input method when the component obtains focus.
2470      * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
2471      * \n
2472      * Format of the return value {@link ArkUI_AttributeItem}:\n
2473       * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
2474       * and <b>0</b> means the opposite. \n
2475      *
2476      */
2477     NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS,
2478     /**
2479      * @brief Defines the text box type. This attribute can be set, reset, and obtained as required through APIs.
2480      *
2481      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2482      * .value[0].i32: text box type {@link ArkUI_TextInputType}.
2483      * The default value is <b>ARKUI_TEXTINPUT_TYPE_NORMAL</b>. \n
2484      * \n
2485      * Format of the return value {@link ArkUI_AttributeItem}:\n
2486      * .value[0].i32: text box type {@link ArkUI_TextInputType}. \n
2487      *
2488      */
2489     NODE_TEXT_INPUT_TYPE,
2490     /**
2491      * @brief Defines the background color of the selected text.
2492      * This attribute can be set, reset, and obtained as required through APIs.
2493      *
2494      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2495      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2496      * \n
2497      * Format of the return value {@link ArkUI_AttributeItem}:\n
2498      * .value[0].u32: color value, in 0xARGB format. \n
2499      *
2500      */
2501     NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR,
2502     /**
2503      * @brief Defines whether to display the password icon at the end of the password text box.
2504      * This attribute can be set, reset, and obtained as required through APIs.
2505      *
2506      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2507      * .value[0].i32: whether to display the password icon at the end of the password text box.
2508      * The value <b>true</b> means to display the password icon, and <b>false</b> means the opposite.\n
2509      * \n
2510      * Format of the return value {@link ArkUI_AttributeItem}:\n
2511      * .value[0].i32: The value <b>1</b> means to display the password icon at the end of the password text box,
2512      * and <b>0</b> means the opposite. \n
2513      *
2514      */
2515     NODE_TEXT_INPUT_SHOW_PASSWORD_ICON,
2516     /**
2517      * @brief Defines the editable state for the single-line text box.
2518      * This attribute can be set as required through APIs.
2519      *
2520      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
2521      * .value[0].i32: whether to remain in the editable state. The value
2522      * <b>true</b> means to remain in the editable state, and <b>false</b> means to exit the editable state. \n
2523      * \n
2524      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
2525      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
2526      * state, and <b>false</b> means to exit the editable state. \n
2527      *
2528      */
2529     NODE_TEXT_INPUT_EDITING,
2530     /**
2531      * @brief Defines the style of the cancel button on the right of the single-line text box.
2532      * This attribute can be set, reset, and obtained as required through APIs.
2533      *
2534      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
2535      * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.
2536      * The default value is <b>ARKUI_CANCELBUTTON_STYLE_INPUT</b>.\n
2537      * .value[1]?.f32: button icon size, in vp.\n
2538      * .value[2]?.u32: button icon color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2539      * ?.string: button icon image source. The value is the local address of the image, for example, /pages/icon.png. \n
2540      * \n
2541      * Format of the return value {@link ArkUI_AttributeItem}:\n
2542      * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.\n
2543      * .value[1].f32: icon size, in vp.\n
2544      * .value[2].u32: button icon color, in 0xARGB format.\n
2545      * .string: button icon image source. \n
2546      *
2547      */
2548     NODE_TEXT_INPUT_CANCEL_BUTTON,
2549     /**
2550      * @brief Sets the text selection area, which will be highlighted.
2551      * This attribute can be set, reset, and obtained as required through APIs.
2552      *
2553      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2554      * .value[0].i32: start position of the text selection. \n
2555      * .value[1].i32: end position of the text selection. \n
2556      * \n
2557      * Format of the return value {@link ArkUI_AttributeItem}:\n
2558      * .value[0].i32: start position of the text selection. \n
2559      * .value[1].i32: end position of the text selection. \n
2560      *
2561      */
2562     NODE_TEXT_INPUT_TEXT_SELECTION,
2563     /**
2564     * @brief Sets the color of the text underline when it is enabled.
2565     *
2566     * The default underline color configured for the theme is <b>'0x33182431'</b>.
2567     *
2568     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2569     * .value[0].u32: color of the underline applied to the text being typed in.
2570     * The value is in 0xARGB format. \n
2571     * .value[1].u32: color of the underline applied to the text in the normal state.
2572     * The value is in 0xARGB format. \n
2573     * .value[2].u32: color of the underline applied to the text when an error is detected.
2574     * The value is in 0xARGB format. \n
2575     * .value[3].u32: color of the underline applied to the text when it is disabled.
2576     * The value is in 0xARGB format. \n
2577     * \n
2578     * Format of the return value {@link ArkUI_AttributeItem}:\n
2579     * .value[0].u32: color of the underline applied to the text being typed in. The value is in 0xARGB format. \n
2580     * .value[1].u32: color of the underline applied to the text in the normal state. The value is in 0xARGB format. \n
2581     * .value[2].u32: color of the underline applied to the text when an error is detected.
2582     * The value is in 0xARGB format. \n
2583     * .value[3].u32: color of the underline applied to the text when it is disabled. The value is in 0xARGB format. \n
2584     *
2585     */
2586     NODE_TEXT_INPUT_UNDERLINE_COLOR,
2587     /**
2588     * @brief Sets whether to enable autofill.
2589     *
2590     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2591     * .value[0].i32: whether to enable autofill. The default value is <b>true</b>. \n
2592     * \n
2593     * Format of the return value {@link ArkUI_AttributeItem}:\n
2594     * .value[0].i32: whether to enable autofill. \n
2595     *
2596     */
2597     NODE_TEXT_INPUT_ENABLE_AUTO_FILL,
2598     /**
2599     * @brief Sets the autofill type.
2600     *
2601     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2602     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
2603     * \n
2604     * Format of the return value {@link ArkUI_AttributeItem}:\n
2605     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
2606     *
2607     */
2608     NODE_TEXT_INPUT_CONTENT_TYPE,
2609     /**
2610     * @brief Defines the rules for generating passwords. When autofill is used, these rules are transparently
2611     * transmitted to Password Vault for generating a new password.
2612     *
2613     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2614     * .string: rules for generating passwords. \n
2615     * \n
2616     * Format of the return value {@link ArkUI_AttributeItem}:\n
2617     * .string: rules for generating passwords. \n
2618     *
2619     */
2620     NODE_TEXT_INPUT_PASSWORD_RULES,
2621     /**
2622     * @brief Sets whether to select all text in the initial state. The inline mode is not supported.
2623     *
2624     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2625     * .value[0].i32: whether to select all text in the initial state. The default value is b>false</b>. \n
2626     * \n
2627     * Format of the return value {@link ArkUI_AttributeItem}:\n
2628     * .value[0].i32: whether to select all text in the initial state. \n
2629     *
2630     */
2631     NODE_TEXT_INPUT_SELECT_ALL,
2632     /**
2633     * @brief Sets the regular expression for input filtering. Only inputs that comply with the regular expression can be
2634     * displayed. Other inputs are filtered out. The specified regular expression can match single characters,
2635     * but not strings.
2636     *
2637     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2638     * .string: regular expression. \n
2639     * \n
2640     * Format of the return value {@link ArkUI_AttributeItem}:\n
2641     * .string: regular expression. \n
2642     *
2643     */
2644     NODE_TEXT_INPUT_INPUT_FILTER,
2645     /**
2646     * @brief Sets the text box to the default style or inline input style.
2647     *
2648     * For the inline input style, only <b>InputType.Normal</b> is supported.
2649     *
2650     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2651     * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
2652     * \n
2653     * Format of the return value {@link ArkUI_AttributeItem}:\n
2654     * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
2655     *
2656     */
2657     NODE_TEXT_INPUT_STYLE,
2658     /**
2659     * @brief Sets or obtains the caret position.
2660     *
2661     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2662     * In the case of setting the caret position:
2663     * .value[0].i32: character count from the beginning of a string to the caret position. \n
2664     *
2665     * Format of the return value {@link ArkUI_AttributeItem}:\n
2666     * In the case of obtaining the caret position: If this API is called when the caret position is updated in the
2667     * current frame, it will not take effect.
2668     * .value[0].i32: index of the caret position. \n
2669     * .value[1].f32: X coordinate of the caret relative to the text box. \n
2670     * .value[2].f32: Y coordinate of the caret relative to the text box. \n
2671     */
2672     NODE_TEXT_INPUT_CARET_OFFSET,
2673     /**
2674     * @brief Obtains the position of the edited text area relative to the component and its size.
2675     *
2676     * Format of the return value {@link ArkUI_AttributeItem}:\n
2677     * .value[0].f32: horizontal coordinate. \n
2678     * .value[1].f32: vertical coordinate. \n
2679     * .value[2].f32: content width. \n
2680     * .value[3].f32: content height. \n
2681     *
2682     */
2683     NODE_TEXT_INPUT_CONTENT_RECT,
2684     /**
2685     * @brief Obtains the number of lines of the edited text.
2686     *
2687     * Format of the return value {@link ArkUI_AttributeItem}:\n
2688     * .value[0].i32: number of lines of the edited text. \n
2689     *
2690     */
2691     NODE_TEXT_INPUT_CONTENT_LINE_COUNT,
2692     /**
2693      * @brief 设置长按、双击输入框或者右键输入框时,是否不弹出文本选择菜单,支持属性设置,属性重置和属性获取接口。
2694      *
2695      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2696      * .value[0].i32: 长按、双击输入框或者右键输入框时,是否不弹出文本选择菜单。默认值false。\n
2697      * \n
2698      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2699      * .value[0].i32: 长按、双击输入框或者右键输入框时,是否不弹出文本选择菜单。\n
2700      *
2701      */
2702     NODE_TEXT_INPUT_SELECTION_MENU_HIDDEN,
2703     /**
2704      * @brief Sets whether the text box loses focus after the Enter key is pressed to submit information.
2705      *
2706      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2707      * .value[0].i32: whether the text box loses focus. \n
2708      * \n
2709      * Format of the return value {@link ArkUI_AttributeItem}:\n
2710      * .value[0].i32: whether the text box loses focus. \n
2711      *
2712      */
2713     NODE_TEXT_INPUT_BLUR_ON_SUBMIT,
2714     /**
2715      * @brief 设置自定义键盘。
2716      *
2717      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2718      * .object:自定义键盘,参数类型{@Link ArkUI_NodeHandle}。\n
2719      * .value[0]?.i32:设置自定义键盘是否支持避让功能,默认值false。\n
2720      * \n
2721      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2722      * .object:自定义键盘,参数类型{@Link ArkUI_NodeHandle}。\n
2723      * .value[0].i32:设置自定义键盘是否支持避让功能。\n
2724      *
2725      */
2726     NODE_TEXT_INPUT_CUSTOM_KEYBOARD,
2727     /**
2728      * @brief 文本断行规则属性,支持属性设置,属性重置,属性获取接口。
2729      *
2730      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2731      * .value[0].i32: 参数类型{@link ArkUI_WordBreak}。\n
2732      * \n
2733      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2734      * .value[0].i32: 参数类型{@link ArkUI_WordBreak}。\n
2735      *
2736      */
2737     NODE_TEXT_INPUT_WORD_BREAK,
2738 
2739     /**
2740     * @brief 设置输入框获取焦点时是否弹出键盘,支持属性设置,属性重置和属性获取接口。
2741     *
2742     * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2743     * .value[0].i32: 是否弹出键盘。\n
2744     * \n
2745     * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2746     * .value[0].i32: 是否弹出键盘。\n
2747     *
2748     */
2749     NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS,
2750 
2751     /**
2752      * @brief 设置该属性后,通过该属性计算textInput组件的高度。
2753      *
2754      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2755      * .value[0].i32: 设置numberOfLines的值。\n
2756      * \n
2757      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2758      * .value[0].i32: 设置numberOfLines的值。\n
2759      *
2760      */
2761     NODE_TEXT_INPUT_NUMBER_OF_LINES,
2762     /**
2763      * @brief Defines the default placeholder text for the multi-line text box.
2764      * This attribute can be set, reset, and obtained as required through APIs.
2765      *
2766      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2767      * .string: default placeholder text. \n
2768      * \n
2769      * Format of the return value {@link ArkUI_AttributeItem}:\n
2770      * .string: default placeholder text. \n
2771      *
2772      */
2773     NODE_TEXT_AREA_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
2774     /**
2775      * @brief Defines the default text content for the multi-line text box.
2776      * This attribute can be set, reset, and obtained as required through APIs.
2777      *
2778      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2779      * .string: default text content. \n
2780      * \n
2781      * Format of the return value {@link ArkUI_AttributeItem}:\n
2782      * .string: default text content. \n
2783      *
2784      */
2785     NODE_TEXT_AREA_TEXT,
2786     /**
2787      * @brief Defines the maximum number of characters in the text input.
2788      * This attribute can be set, reset, and obtained as required through APIs.
2789      *
2790      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2791      * .value[0].i32: maximum number of characters in the text input. \n
2792      * \n
2793      * Format of the return value {@link ArkUI_AttributeItem}:\n
2794      * .value[0].i32: maximum number of characters in the text input. \n
2795      *
2796      */
2797     NODE_TEXT_AREA_MAX_LENGTH,
2798     /**
2799      * @brief Defines the placeholder text color.
2800      * This attribute can be set, reset, and obtained as required through APIs.
2801      *
2802      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2803      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2804      * \n
2805      * Format of the return value {@link ArkUI_AttributeItem}:\n
2806      * .value[0].u32: color value, in 0xARGB format. \n
2807      *
2808      */
2809     NODE_TEXT_AREA_PLACEHOLDER_COLOR,
2810     /**
2811      * @brief Defines the placeholder text font.
2812      * This attribute can be set, reset, and obtained as required through APIs.
2813      *
2814      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2815      * .value[0]?.f32: font size, in fp. Optional. The default value is <b>16.0</b>.\n
2816      * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optional. The default value is
2817      * <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
2818      * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional. The default value is
2819      * <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
2820      * ?.string: font family. Multiple font families are separated by commas (,).
2821      * For example, "font weight; font family 1, font family 2". \n
2822      * \n
2823      * Format of the return value {@link ArkUI_AttributeItem}:\n
2824      * .value[0].f32: font size, in fp.\n
2825      * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
2826      * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
2827      * .string: font family. Multiple font families are separated by commas (,). \n
2828      *
2829      */
2830     NODE_TEXT_AREA_PLACEHOLDER_FONT,
2831     /**
2832      * @brief Defines the caret color attribute.
2833      * This attribute can be set, reset, and obtained as required through APIs.
2834      *
2835      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2836      * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2837      * \n
2838      * Format of the return value {@link ArkUI_AttributeItem}:\n
2839      * .value[0].u32: background color, in 0xARGB format. \n
2840      *
2841      */
2842     NODE_TEXT_AREA_CARET_COLOR,
2843     /**
2844      * @brief Defines the editable state for the multi-line text box.
2845      * This attribute can be set as required through APIs.
2846      *
2847      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2848      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the
2849      * editable state, and <b>false</b> means to exit the editable state.\n \n
2850      * \n
2851      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
2852      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
2853      * state, and <b>false</b> means to exit the editable state.\n \n
2854      *
2855      */
2856     NODE_TEXT_AREA_EDITING,
2857     /**
2858      * @brief Defines the text box type. This attribute can be set, reset, and obtained as required through APIs.
2859      *
2860      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2861      * .value[0].i32: text box type {@link ArkUI_TextAreaType}.
2862      * The default value is <b>ARKUI_TEXTAREA_TYPE_NORMAL</b>. \n
2863      * \n
2864      * Format of the return value {@link ArkUI_AttributeItem}:\n
2865      * .value[0].i32: text box type {@link ArkUI_TextAreaType}. \n
2866      *
2867      */
2868     NODE_TEXT_AREA_TYPE,
2869     /**
2870      * @brief Defines the counter settings. This attribute can be set, reset, and obtained as required through APIs.
2871      *
2872      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2873      * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
2874      * .value[1]?.f32: threshold percentage for displaying the character counter. The character counter is displayed
2875      * when the number of characters that have been entered is greater than the maximum number of characters multiplied
2876      * by the threshold percentage value. The value range is 1 to 100. If the value is a decimal, it is rounded down. \n
2877      * .value[2]?.i32: whether to highlight the border when the number of entered characters reaches the maximum. \n
2878      * \n
2879      * Format of the return value {@link ArkUI_AttributeItem}:\n
2880      * .value[0].i32: whether to show a character counter. \n
2881      * .value[1].f32: threshold percentage for displaying the character counter. The character counter is displayed
2882      * when the number of characters that have been entered is greater than the maximum number of characters multiplied
2883      * by the threshold percentage value. The value range is 1 to 100. \n
2884      * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
2885      * The default value is <b>true</b>. \n
2886      *
2887      */
2888     NODE_TEXT_AREA_SHOW_COUNTER,
2889 
2890     /**
2891      * @brief 设置长按、双击输入框或者右键输入框时,是否不弹出文本选择菜单,支持属性设置,属性重置和属性获取接口。
2892      *
2893      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2894      * .value[0].i32: 长按、双击输入框或者右键输入框时,是否不弹出文本选择菜单。默认值false。\n
2895      * \n
2896      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2897      * .value[0].i32: 长按、双击输入框或者右键输入框时,是否不弹出文本选择菜单。\n
2898      *
2899      */
2900     NODE_TEXT_AREA_SELECTION_MENU_HIDDEN,
2901     /**
2902      * @brief Sets whether the multi-line text box loses focus after the Enter key is pressed to submit information.
2903      *
2904      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2905      * .value[0].i32: whether the text box loses focus. \n
2906      * \n
2907      * Format of the return value {@link ArkUI_AttributeItem}:\n
2908      * .value[0].i32: whether the text box loses focus. \n
2909      *
2910      */
2911     NODE_TEXT_AREA_BLUR_ON_SUBMIT,
2912     /**
2913     * @brief 通过正则表达式设置输入过滤器。匹配表达式的输入允许显示,不匹配的输入将被过滤。仅支持单个字符匹配,不支持字符串匹配。
2914     *
2915     * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2916     * .string: 正则表达式。\n
2917     * \n
2918     * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2919     * .string: 正则表达式。\n
2920     *
2921     */
2922     NODE_TEXT_AREA_INPUT_FILTER,
2923     /**
2924      * @brief 设置文本选中底板颜色,支持属性设置,属性重置和属性获取接口。
2925      *
2926      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2927      * .value[0].u32:颜色数值,0xargb格式,形如 0xFFFF0000 表示红色。\n
2928      * \n
2929      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2930      * .value[0].u32:颜色数值,0xargb格式。\n
2931      *
2932      */
2933     NODE_TEXT_AREA_SELECTED_BACKGROUND_COLOR,
2934     /**
2935      * @brief 设置输入法回车键类型,支持属性设置,属性重置和属性获取接口。
2936      *
2937      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2938      * .value[0].i32:回车键类型枚举{@link ArkUI_EnterKeyType},默认值为ARKUI_ENTER_KEY_TYPE_DONE。\n
2939      * \n
2940      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2941      * .value[0].i32:回车键类型枚举{@link ArkUI_EnterKeyType}。\n
2942      *
2943      */
2944     NODE_TEXT_AREA_ENTER_KEY_TYPE,
2945     /**
2946      * @brief 设置TextArea通过点击以外的方式获焦时,是否绑定输入法,支持属性设置,属性重置和属性获取接口。
2947      *
2948      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2949      * .value[0].i32:false表示聚焦不拉起输入法,true表示拉起,默认值为true。\n
2950      * \n
2951      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2952      * .value[0].i32:0表示聚焦不拉起输入法,1表示拉起。\n
2953      *
2954      */
2955     NODE_TEXT_AREA_ENABLE_KEYBOARD_ON_FOCUS,
2956     /**
2957     * @brief 设置或获取光标所在位置信息。
2958     *
2959     * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2960     * 设置输入光标的位置。
2961     * .value[0].i32: 从字符串开始到光标所在位置的字符长度。\n
2962     *
2963     * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2964     * 返回当前光标所在位置信息。在当前帧更新光标位置同时调用该接口,该接口不生效
2965     * value[0].i32:光标所在位置的索引值。\n
2966     * value[1].f32:光标相对输入框的x坐标位值。\n
2967     * value[2].f32:光标相对输入框的y坐标位值。\n
2968     */
2969     NODE_TEXT_AREA_CARET_OFFSET,
2970     /**
2971     * @brief 获取已编辑文本内容区域相对组件的位置和大小。
2972     *
2973     * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2974     * value[0].f32:水平方向横坐标。\n
2975     * value[1].f32:竖直方向纵坐标。\n
2976     * value[2].f32:内容宽度大小。\n
2977     * value[3].f32:内容高度大小。\n
2978     *
2979     */
2980     NODE_TEXT_AREA_CONTENT_RECT,
2981     /**
2982     * @brief 获取已编辑文本内容的行数。
2983     *
2984     * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2985     * value[0].i32:已编辑文本内容行数。\n
2986     *
2987     */
2988     NODE_TEXT_AREA_CONTENT_LINE_COUNT,
2989     /**
2990      * @brief 组件在获焦状态下,调用该接口设置文本选择区域并高亮显示,且只有在selectionStart小于selectionEnd时,文字才会被选取、高亮显示。
2991      *
2992      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
2993      * .value[0].i32:选中文本的起始位置;\n
2994      * .value[1].i32:选中文本的终止位置;\n
2995      * \n
2996      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
2997      * .value[0].i32:选中文本的起始位置;\n
2998      * .value[1].i32:选中文本的终止位置;\n
2999      *
3000      */
3001     NODE_TEXT_AREA_TEXT_SELECTION,
3002     /**
3003     * @brief 设置是否启用自动填充。
3004     *
3005     * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
3006     * .value[0].i32: 是否启用自动填充,默认值true。\n
3007     * \n
3008     * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
3009     * .value[0].i32: 是否启用自动填充。\n
3010     *
3011     */
3012     NODE_TEXT_AREA_ENABLE_AUTO_FILL,
3013     /**
3014     * @brief 自动填充类型。
3015     *
3016     * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
3017     * .value[0].i32: 参数类型{@link ArkUI_TextInputContentType}。\n
3018     * \n
3019     * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
3020     * .value[0].i32: 参数类型{@link ArkUI_TextInputContentType}。\n
3021     *
3022     */
3023     NODE_TEXT_AREA_CONTENT_TYPE,
3024 
3025     /**
3026     * @brief 设置输入框获取焦点时是否弹出键盘,支持属性设置,属性重置和属性获取接口。
3027     *
3028     * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
3029     * .value[0].i32: 是否弹出键盘。\n
3030     * \n
3031     * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
3032     * .value[0].i32: 是否弹出键盘。\n
3033     *
3034     */
3035     NODE_TEXT_AREA_SHOW_KEYBOARD_ON_FOCUS,
3036 
3037     /**
3038      * @brief 设置该属性后,通过该属性计算textArea组件的高度。
3039      *
3040      * 属性设置方法参数{@link ArkUI_AttributeItem}格式:\n
3041      * .value[0].i32: 设置numberOfLines的值。\n
3042      * \n
3043      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式:\n
3044      * .value[0].i32: 设置numberOfLines的值。\n
3045      *
3046      */
3047     NODE_TEXT_AREA_NUMBER_OF_LINES,
3048     /**
3049      * @brief Defines the button text content. This attribute can be set, reset, and obtained as required through APIs.
3050      *
3051      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3052      * .string: default text content. \n
3053      * \n
3054      * Format of the return value {@link ArkUI_AttributeItem}:\n
3055      * .string: default text content. \n
3056      *
3057      */
3058     NODE_BUTTON_LABEL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_BUTTON,
3059 
3060     /**
3061      * @brief Sets the button type. This attribute can be set, reset, and obtained as required through APIs.
3062      *
3063      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3064      * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
3065      * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
3066      * \n
3067      * Format of the return value {@link ArkUI_AttributeItem}:\n
3068      * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
3069      * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
3070      *
3071      */
3072     NODE_BUTTON_TYPE,
3073 
3074     /**
3075      * @brief Defines the current value of the progress indicator.
3076      * This attribute can be set, reset, and obtained as required through APIs.
3077      *
3078      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3079      * .value[0].f32: current value of the progress indicator. \n
3080      * \n
3081      * Format of the return value {@link ArkUI_AttributeItem}:\n
3082      * .value[0].f32: current value of the progress indicator. \n
3083      *
3084      */
3085     NODE_PROGRESS_VALUE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PROGRESS,
3086     /**
3087      * @brief Defines the total value of the progress indicator.
3088      * This attribute can be set, reset, and obtained as required through APIs.
3089      *
3090      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3091      * .value[0].f32: total value of the progress indicator. \n
3092      * \n
3093      * Format of the return value {@link ArkUI_AttributeItem}:\n
3094      * .value[0].f32: total value of the progress indicator. \n
3095      *
3096      */
3097     NODE_PROGRESS_TOTAL,
3098     /**
3099      * @brief Defines the color for the progress value on the progress indicator.
3100      * This attribute can be set, reset, and obtained as required through APIs.
3101      *
3102      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3103      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3104      * \n
3105      * Format of the return value {@link ArkUI_AttributeItem}:\n
3106      * .value[0].u32: color value, in 0xARGB format. \n
3107      *
3108      */
3109     NODE_PROGRESS_COLOR,
3110     /**
3111      * @brief Defines the type of the progress indicator.
3112      * This attribute can be set, reset, and obtained as required through APIs.
3113      *
3114      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3115      * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}.
3116      * The default value is <b>ARKUI_PROGRESS_TYPE_LINEAR</b>. \n
3117      * \n
3118      * Format of the return value {@link ArkUI_AttributeItem}:\n
3119      * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}. \n
3120      *
3121      */
3122     NODE_PROGRESS_TYPE,
3123 
3124     /**
3125      * @brief Defines whether the check box is selected.
3126      * This attribute can be set, reset, and obtained as required through APIs.
3127      *
3128      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3129      * .value[0].i32: whether the check box is selected.
3130      * The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
3131      * \n
3132      * Format of the return value {@link ArkUI_AttributeItem}:\n
3133      * .value[0].i32: The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
3134      *
3135      */
3136     NODE_CHECKBOX_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,
3137 
3138     /**
3139      * @brief Defines the color of the check box when it is selected.
3140      * This attribute can be set, reset, and obtained as required through APIs.
3141      *
3142      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3143      * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
3144      * \n
3145      * Format of the return value {@link ArkUI_AttributeItem}:\n
3146      * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>.
3147      *
3148      */
3149     NODE_CHECKBOX_SELECT_COLOR,
3150 
3151     /**
3152      * @brief Defines the border color of the check box when it is not selected.
3153      * This attribute can be set, reset, and obtained as required through APIs.
3154      *
3155      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3156      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
3157      * \n
3158      * Format of the return value {@link ArkUI_AttributeItem}:\n
3159      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
3160      *
3161      */
3162     NODE_CHECKBOX_UNSELECT_COLOR,
3163 
3164     /**
3165      * @brief Defines the internal icon style of the check box.
3166      * This attribute can be set, reset, and obtained as required through APIs.
3167      *
3168      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3169      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
3170      * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
3171      * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
3172      * \n
3173      * Format of the return value {@link ArkUI_AttributeItem}:\n
3174      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
3175      * .value[1].f32: size of the internal mark, in vp. \n
3176      * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
3177      *
3178      */
3179     NODE_CHECKBOX_MARK,
3180 
3181     /**
3182      * @brief Defines the shape of the check box.
3183      * This attribute can be set, reset, and obtained as required through APIs.
3184      *
3185      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3186      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
3187      * \n
3188      * Format of the return value {@link ArkUI_AttributeItem}:\n
3189      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
3190      *
3191      */
3192     NODE_CHECKBOX_SHAPE,
3193 
3194     /**
3195      * @brief Defines the ID of the <b><XComponent></b> component.
3196      * This attribute can be set and obtained as required through APIs.
3197      *
3198      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3199      * .string: component ID. \n
3200      * \n
3201      * Format of the return value {@link ArkUI_AttributeItem}:\n
3202      * .string: component ID. \n
3203      *
3204      */
3205     NODE_XCOMPONENT_ID = MAX_NODE_SCOPE_NUM * ARKUI_NODE_XCOMPONENT,
3206     /**
3207      * @brief Defines the type of the <b><XComponent></b> component.
3208      * This attribute can be set, reset, and obtained as required through APIs.
3209      *
3210      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3211      * .value[0].i32: type {@link ArkUI_XComponentType}. The default value is <b>ARKUI_XCOMPONENT_TYPE_SURFACE</b>. \n
3212      * \n
3213      * Format of the return value {@link ArkUI_AttributeItem}:\n
3214      * .value[0].i32: type {@link ArkUI_XComponentType}. \n
3215      *
3216      */
3217     NODE_XCOMPONENT_TYPE,
3218     /**
3219      * @brief Defines the width and height of the <b><XComponent></b> component.
3220      * This attribute can be set and obtained as required through APIs.
3221      *
3222      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3223      * .value[0].u32: width, in px. \n
3224      * .value[1].u32: height, in px. \n
3225      * \n
3226      * Format of the return value {@link ArkUI_AttributeItem}:\n
3227      * .value[0].u32: width, in px. \n
3228      * .value[1].u32: height, in px. \n
3229      *
3230      */
3231     NODE_XCOMPONENT_SURFACE_SIZE,
3232 
3233     /**
3234      * @brief Defines whether to display the lunar calendar in the date picker.
3235      * This attribute can be set, reset, and obtained as required through APIs.
3236      *
3237      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3238      * .value[0].i32: whether to display the lunar calendar in the date picker. The default value is <b>false</b>. \n
3239      * \n
3240      * Format of the return value {@link ArkUI_AttributeItem}:\n
3241      * .value[0].i32: whether to display the lunar calendar in the date picker.
3242      *
3243      */
3244     NODE_DATE_PICKER_LUNAR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
3245     /**
3246      * @brief Defines the start date of the date picker.
3247      * This attribute can be set, reset, and obtained as required through APIs.
3248      *
3249      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3250      * .string: date. The default value is <b>"1970-1-1"</b>. \n
3251      * \n
3252      * Format of the return value {@link ArkUI_AttributeItem}:\n
3253      * .string: date. \n
3254      *
3255      */
3256     NODE_DATE_PICKER_START,
3257     /**
3258      * @brief Defines the end date of the date picker.
3259      * This attribute can be set, reset, and obtained as required through APIs.
3260      *
3261      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3262      * .string: date. The default value is <b>"2100-12-31"</b>. \n
3263      * \n
3264      * Format of the return value {@link ArkUI_AttributeItem}:\n
3265      * .string: date. \n
3266      *
3267      */
3268     NODE_DATE_PICKER_END,
3269     /**
3270      * @brief Defines the selected date of the date picker.
3271      * This attribute can be set, reset, and obtained as required through APIs.
3272      *
3273      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3274      * .string: date. The default value is <b>"2024-01-22"</b>. \n
3275      * \n
3276      * Format of the return value {@link ArkUI_AttributeItem}:\n
3277      * .string: date.
3278      *
3279      */
3280     NODE_DATE_PICKER_SELECTED,
3281     /**
3282      * @brief Defines the font color, font size, and font weight for the top and bottom items in the date picker.
3283      * This attribute can be set, reset, and obtained as required through APIs.
3284      *
3285      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3286      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3287      * Parameter 1: font color, in #ARGB format.\n
3288      * Parameter 2: font size, in fp. The value is a number.\n
3289      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3290      * Parameter 4: fonts, separated by commas (,).\n
3291      * Parameter 5: font style. Available options are ("normal", "italic").\n
3292      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3293      * \n
3294      * Format of the return value {@link ArkUI_AttributeItem}:\n
3295      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3296      * Parameter 1: font color, in #ARGB format.\n
3297      * Parameter 2: font size, in fp. The value is a number.\n
3298      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3299      * Parameter 4: fonts, separated by commas (,).\n
3300      * Parameter 5: font style. Available options are ("normal", "italic").\n
3301      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3302      *
3303      */
3304     NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE,
3305     /**
3306      * @brief Defines the font color, font size, and font weight of all items except the top, bottom, and selected
3307      * items in the date picker. This attribute can be set, reset, and obtained as required through APIs.
3308      *
3309      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3310      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3311      * Parameter 1: font color, in #ARGB format.\n
3312      * Parameter 2: font size, in fp. The value is a number.\n
3313      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3314      * Parameter 4: fonts, separated by commas (,).\n
3315      * Parameter 5: font style. Available options are ("normal", "italic").\n
3316      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3317      * \n
3318      * Format of the return value {@link ArkUI_AttributeItem}:\n
3319      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3320      * Parameter 1: font color, in #ARGB format.\n
3321      * Parameter 2: font size, in fp. The value is a number.\n
3322      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3323      * Parameter 4: fonts, separated by commas (,).\n
3324      * Parameter 5: font style. Available options are ("normal", "italic").\n
3325      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3326      *
3327      */
3328     NODE_DATE_PICKER_TEXT_STYLE,
3329     /**
3330      * @brief Defines the font color, font size, and font weight of the selected item in the date picker.
3331      * This attribute can be set, reset, and obtained as required through APIs.
3332      *
3333      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3334      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3335      * Parameter 1: font color, in #ARGB format.\n
3336      * Parameter 2: font size, in fp. The value is a number.\n
3337      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3338      * Parameter 4: fonts, separated by commas (,).\n
3339      * Parameter 5: font style. Available options are ("normal", "italic").\n
3340      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3341      * \n
3342      * Format of the return value {@link ArkUI_AttributeItem}:\n
3343      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3344      * Parameter 1: font color, in #ARGB format.\n
3345      * Parameter 2: font size, in fp. The value is a number.\n
3346      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3347      * Parameter 4: fonts, separated by commas (,).\n
3348      * Parameter 5: font style. Available options are ("normal", "italic").\n
3349      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3350      *
3351      */
3352     NODE_DATE_PICKER_SELECTED_TEXT_STYLE,
3353     /**
3354      * @brief Defines the time of the selected item. in the timer picker.
3355      * This attribute can be set, reset, and obtained as required through APIs.
3356      *
3357      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3358      * .string: time. The default value is the current system time. \n
3359      * \n
3360      * Format of the return value {@link ArkUI_AttributeItem}:\n
3361      * .string: time.
3362      *
3363      */
3364 
3365     NODE_TIME_PICKER_SELECTED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
3366     /**
3367      * @brief Defines whether the display time is in 24-hour format.
3368      * This attribute can be set, reset, and obtained as required through APIs.
3369      *
3370      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3371      * .value[0].i32: whether the display time is in 24-hour format. The default value is <b>false</b>. \n
3372      * \n
3373      * Format of the return value {@link ArkUI_AttributeItem}:\n
3374      * .value[0].i32: whether the display time is in 24-hour format.
3375      *
3376      */
3377     NODE_TIME_PICKER_USE_MILITARY_TIME,
3378     /**
3379      * @brief Defines the font color, font size, and font weight for the top and bottom items in the time picker.
3380      * This attribute can be set, reset, and obtained as required through APIs.
3381      *
3382      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3383      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3384      * Parameter 1: font color, in #ARGB format.\n
3385      * Parameter 2: font size, in fp. The value is a number.\n
3386      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3387      * Parameter 4: fonts, separated by commas (,).\n
3388      * Parameter 5: font style. Available options are ("normal", "italic").\n
3389      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3390      * \n
3391      * Format of the return value {@link ArkUI_AttributeItem}:\n
3392      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3393      * Parameter 1: font color, in #ARGB format.\n
3394      * Parameter 2: font size, in fp. The value is a number.\n
3395      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3396      * Parameter 4: fonts, separated by commas (,).\n
3397      * Parameter 5: font style. Available options are ("normal", "italic").\n
3398      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3399      *
3400      */
3401     NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE,
3402     /**
3403      * @brief Defines the font color, font size, and font weight of all items except the top, bottom, and selected items
3404      * in the time picker. This attribute can be set, reset, and obtained as required through APIs.
3405      *
3406      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3407      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3408      * Parameter 1: font color, in #ARGB format.\n
3409      * Parameter 2: font size, in fp. The value is a number.\n
3410      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3411      * Parameter 4: fonts, separated by commas (,).\n
3412      * Parameter 5: font style. Available options are ("normal", "italic").\n
3413      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3414      * \n
3415      * Format of the return value {@link ArkUI_AttributeItem}:\n
3416      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3417      * Parameter 1: font color, in #ARGB format.\n
3418      * Parameter 2: font size, in fp. The value is a number.\n
3419      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3420      * Parameter 4: fonts, separated by commas (,).\n
3421      * Parameter 5: font style. Available options are ("normal", "italic").\n
3422      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3423      *
3424      */
3425     NODE_TIME_PICKER_TEXT_STYLE,
3426     /**
3427      * @brief Defines the font color, font size, and font weight of the selected item in the time picker.
3428      * This attribute can be set, reset, and obtained as required through APIs.
3429      *
3430      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3431      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3432      * Parameter 1: font color, in #ARGB format.\n
3433      * Parameter 2: font size, in fp. The value is a number.\n
3434      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3435      * Parameter 4: fonts, separated by commas (,).\n
3436      * Parameter 5: font style. Available options are ("normal", "italic").\n
3437      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3438      * \n
3439      * Format of the return value {@link ArkUI_AttributeItem}:\n
3440      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3441      * Parameter 1: font color, in #ARGB format.\n
3442      * Parameter 2: font size, in fp. The value is a number.\n
3443      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3444      * Parameter 4: fonts, separated by commas (,).\n
3445      * Parameter 5: font style. Available options are ("normal", "italic").\n
3446      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3447      *
3448      */
3449     NODE_TIME_PICKER_SELECTED_TEXT_STYLE,
3450 
3451     /**
3452      * @brief Defines the data selection range of the text picker.
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      * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.
3457      * The default value is <b>ARKUI_TEXTPICKER_RANGETYPE_SINGLE</b>. \n
3458      * ?.string: string input, whose format varies by picker type.\n
3459      * 1: single-column picker. The input format is a group of strings separated by semicolons (;).\n
3460      * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
3461      * semicolons (;), and strings within each pair are separated by commas (,). \n
3462      * ?.object: Object input, whose format varies by picker type.\n
3463      * 1: single-column picker with image support. The input structure is {@link ARKUI_TextPickerRangeContent}.\n
3464      * 2: multi-column interconnected picker. The input structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
3465      * \n
3466      * Format of the return value {@link ArkUI_AttributeItem}:\n
3467      * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.\n
3468      * ?.string: string output, whose format varies by picker type.\n
3469      * 1: single-column picker. The output format is a group of strings separated by semicolons (;).\n
3470      * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
3471      * semicolons (;), and strings within each pair are separated by commas (,). \n
3472      * ?.string: Object output, whose format varies by picker type.\n
3473      * 1: single-column picker with image support. The output structure is {@link ARKUI_TextPickerRangeContent}.\n
3474      * 2: multi-column interconnected picker. The output structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
3475      *
3476      */
3477     NODE_TEXT_PICKER_OPTION_RANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,
3478     /**
3479      * @brief Defines the index of the default selected item in the data selection range of the text picker.
3480      * This attribute can be set, reset, and obtained as required through APIs.
3481      *
3482      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3483      * .value[0].u32: index. If there are multiple index values, add them one by one. \n
3484      * \n
3485      * Format of the return value {@link ArkUI_AttributeItem}:\n
3486      * .value[0].u32: index. If there are multiple index values, add them one by one.\n
3487      *
3488      */
3489     NODE_TEXT_PICKER_OPTION_SELECTED,
3490     /**
3491      * @brief Defines the value of the default selected item in the text picker.
3492      * This attribute can be set, reset, and obtained as required through APIs.
3493      *
3494      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3495      * .string: value of the selected item. If there are multiple values, add them one by one and
3496      * separate them with semicolons (;). \n
3497      * \n
3498      * Format of the return value {@link ArkUI_AttributeItem}:\n
3499      * .string: value of the selected item. If there are multiple values, add them one by one and
3500      * separate them with semicolons (;).\n
3501      *
3502      */
3503     NODE_TEXT_PICKER_OPTION_VALUE,
3504     /**
3505      * @brief Defines the font color, font size, and font weight for the top and bottom items in the text picker.
3506      * This attribute can be set, reset, and obtained as required through APIs.
3507      *
3508      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3509      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3510      * Parameter 1: font color, in #ARGB format.\n
3511      * Parameter 2: font size, in fp. The value is a number.\n
3512      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3513      * Parameter 4: fonts, separated by commas (,).\n
3514      * Parameter 5: font style. Available options are ("normal", "italic").\n
3515      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3516      * \n
3517      * Format of the return value {@link ArkUI_AttributeItem}:\n
3518      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3519      * Parameter 1: font color, in #ARGB format.\n
3520      * Parameter 2: font size, in fp. The value is a number.\n
3521      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3522      * Parameter 4: fonts, separated by commas (,).\n
3523      * Parameter 5: font style. Available options are ("normal", "italic").\n
3524      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3525      *
3526      */
3527     NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE,
3528     /**
3529      * @brief Defines the font color, font size, and font weight for all items except the top, bottom, and selected
3530      * items in the text picker. This attribute can be set, reset, and obtained as required through APIs.
3531      *
3532      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3533      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3534      * Parameter 1: font color, in #ARGB format.\n
3535      * Parameter 2: font size, in fp. The value is a number.\n
3536      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3537      * Parameter 4: fonts, separated by commas (,).\n
3538      * Parameter 5: font style. Available options are ("normal", "italic").\n
3539      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3540      * \n
3541      * Format of the return value {@link ArkUI_AttributeItem}:\n
3542      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3543      * Parameter 1: font color, in #ARGB format.\n
3544      * Parameter 2: font size, in fp. The value is a number.\n
3545      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3546      * Parameter 4: fonts, separated by commas (,).\n
3547      * Parameter 5: font style. Available options are ("normal", "italic").\n
3548      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3549      *
3550      */
3551     NODE_TEXT_PICKER_TEXT_STYLE,
3552     /**
3553      * @brief Defines the font color, font size, and font weight for the selected item in the text picker.
3554      * This attribute can be set, reset, and obtained as required through APIs.
3555      *
3556      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3557      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3558      * Parameter 1: font color, in #ARGB format.\n
3559      * Parameter 2: font size, in fp. The value is a number.\n
3560      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3561      * Parameter 4: fonts, separated by commas (,).\n
3562      * Parameter 5: font style. Available options are ("normal", "italic").\n
3563      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3564      * \n
3565      * Format of the return value {@link ArkUI_AttributeItem}:\n
3566      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3567      * Parameter 1: font color, in #ARGB format.\n
3568      * Parameter 2: font size, in fp. The value is a number.\n
3569      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3570      * Parameter 4: fonts, separated by commas (,).\n
3571      * Parameter 5: font style. Available options are ("normal", "italic").\n
3572      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3573      *
3574      */
3575     NODE_TEXT_PICKER_SELECTED_TEXT_STYLE,
3576     /**
3577      * @brief Defines the index of the default selected item in the data selection range of the text picker.
3578      * This attribute can be set, reset, and obtained as required through APIs.
3579      *
3580      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3581      * .value[0...].i32: index of the default item in the data selection range.
3582      *
3583      */
3584     NODE_TEXT_PICKER_SELECTED_INDEX,
3585     /**
3586      * @brief Defines whether to support scroll looping for the text picker.
3587      * This attribute can be set, reset, and obtained as required through APIs.
3588      *
3589      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3590      * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
3591      * <b>false</b> means the opposite.\n \n
3592      * \n
3593      * Format of the return value {@link ArkUI_AttributeItem}:\n
3594      * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the opposite. \n
3595      *
3596      */
3597     NODE_TEXT_PICKER_CAN_LOOP,
3598     /**
3599      * @brief Defines the height of each item in the picker. This attribute can be set, reset, and obtained as required
3600      * through APIs.
3601      *
3602      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3603      * .value[0].f32: item height, in vp. \n
3604      * \n
3605      * Format of the return value {@link ArkUI_AttributeItem}:\n
3606      * value[0].f32: item height, in vp. \n
3607      *
3608      */
3609     NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT,
3610     /**
3611      * @brief Defines the style of the background in the selected state of the calendar picker.
3612      * This attribute can be set, reset, and obtained as required through APIs.
3613      *
3614      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3615      * .value[0].f32: style of the background in the selected state of the calendar picker.
3616      * The value range is [0, +∞). If the value is <b>0</b>, the background is a rectangle with square corners.
3617      If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to
3618      * or greater than 16, the background is a circle. \n
3619      * \n
3620      * Format of the return value {@link ArkUI_AttributeItem}:\n
3621      * .value[0].f32: style of the background in the selected state of the calendar picker. The value range is [0, +∞).
3622      * If the value is <b>0</b>, the background is a rectangle with square corners.
3623      If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to or
3624      * greater than 16, the background is a circle. \n
3625      *
3626      */
3627     NODE_CALENDAR_PICKER_HINT_RADIUS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
3628     /**
3629      * @brief Defines the date of the selected item in the calendar picker.
3630      * This attribute can be set, reset, and obtained as required through APIs.
3631      *
3632      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3633      * .value[0].u32: year of the selected date. \n
3634      * .value[1].u32: month of the selected date. \n
3635      * .value[2].u32: day of the selected date. \n
3636      * \n
3637      * Format of the return value {@link ArkUI_AttributeItem}:\n
3638      * .value[0].u32: year of the selected date. \n
3639      * .value[1].u32: month of the selected date. \n
3640      * .value[2].u32: day of the selected date. \n
3641      *
3642      */
3643     NODE_CALENDAR_PICKER_SELECTED_DATE,
3644     /**
3645      * @brief Defines how the calendar picker is aligned with the entry component.
3646      * This attribute can be set, reset, and obtained as required through APIs.
3647      *
3648      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3649      * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
3650      * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
3651      * the specified alignment mode. \n
3652      * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
3653      * the specified alignment mode. \n
3654      * \n
3655      * Format of the return value {@link ArkUI_AttributeItem}:\n
3656      * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
3657      * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
3658      * the specified alignment mode. \n
3659      * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
3660      * the specified alignment mode. \n
3661      *
3662      */
3663     NODE_CALENDAR_PICKER_EDGE_ALIGNMENT,
3664     /**
3665      * @brief Defines the font color, font size, and font weight in the entry area of the calendar picker.
3666      *
3667      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3668      * .value[0]?.u32: font color of the entry area. \n
3669      * .value[1]?.f32: font size of the entry area, in fp. \n
3670      * .value[2]?.i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
3671      * \n
3672      * Format of the return value {@link ArkUI_AttributeItem}:\n
3673      * .value[0].u32: font color of the entry area. \n
3674      * .value[1].f32: font size of the entry area, in fp. \n
3675      * .value[2].i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
3676      *
3677      */
3678     NODE_CALENDAR_PICKER_TEXT_STYLE,
3679     /**
3680      * @brief Defines the color of the slider. This attribute can be set, reset, and obtained as required through APIs.
3681      *
3682      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3683      * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
3684      * \n
3685      * Format of the return value {@link ArkUI_AttributeItem}:\n
3686      * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
3687      *
3688      */
3689     NODE_SLIDER_BLOCK_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,
3690 
3691     /**
3692      * @brief Defines the background color of the slider. This attribute can be set, reset, and obtained as required
3693      * through APIs.
3694      *
3695      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3696      * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
3697      * \n
3698      * Format of the return value {@link ArkUI_AttributeItem}:\n
3699      * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
3700      *
3701      */
3702     NODE_SLIDER_TRACK_COLOR,
3703 
3704     /**
3705      * @brief Defines the color of the selected part of the slider track. This attribute can be set, reset, and obtained
3706      * as required through APIs.
3707      *
3708      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3709      * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
3710      * \n
3711      * Format of the return value {@link ArkUI_AttributeItem}:\n
3712      * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>.
3713      *
3714      */
3715     NODE_SLIDER_SELECTED_COLOR,
3716 
3717     /**
3718      * @brief Sets whether to display the stepping value. This attribute can be set, reset, and obtained as required
3719      * through APIs.
3720      *
3721      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3722      * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
3723      * and <b>0</b> (default value) means the opposite. \n
3724      * \n
3725      * Format of the return value {@link ArkUI_AttributeItem}:\n
3726      * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
3727      * and <b>0</b> (default value) means the opposite. \n
3728      *
3729      */
3730     NODE_SLIDER_SHOW_STEPS,
3731 
3732     /**
3733      * @brief Defines the slider shape, which can be set, reset, and obtained as required through APIs.
3734      *
3735      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3736      * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
3737      * .string?: depending on the shape. Optional. \n
3738      * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
3739      * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
3740      * There are five types:\n
3741      * 1. Rectangle:\n
3742      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
3743      * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
3744      * .value[2].f32: width of the rectangle.\n
3745      * .value[3].f32: height of the rectangle.\n
3746      * .value[4].f32: width of the rounded corner of the rectangle.\n
3747      * .value[5].f32: height of the rounded corner of the rectangle.\n
3748      * 2. Circle:\n
3749      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
3750      * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
3751      * .value[2].f32: width of the circle.\n
3752      * .value[3].f32: height of the circle.\n
3753      * 3.Ellipse:\n
3754      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
3755      * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
3756      * .value[2].f32: width of the ellipse.\n
3757      * .value[3].f32: height of the ellipse;\n
3758      * 4. Path:\n
3759      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
3760      * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
3761      * .value[2].f32: width of the path.\n
3762      * .value[3].f32: height of the path.\n
3763      * .string: command for drawing the path.\n
3764      * \n
3765      * Format of the return value {@link ArkUI_AttributeItem}:\n
3766      * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
3767      * .string?: depending on the shape. Optional. \n
3768      * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
3769      * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
3770       * There are five types:\n
3771      * 1. Rectangle:\n
3772      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
3773      * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
3774      * .value[2].f32: width of the rectangle.\n
3775      * .value[3].f32: height of the rectangle.\n
3776      * .value[4].f32: width of the rounded corner of the rectangle.\n
3777      * .value[5].f32: height of the rounded corner of the rectangle.\n
3778      * 2. Circle:\n
3779      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
3780      * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
3781      * .value[2].f32: width of the circle.\n
3782      * .value[3].f32: height of the circle.\n
3783      * 3.Ellipse:\n
3784      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
3785      * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
3786      * .value[2].f32: width of the ellipse.\n
3787      * .value[3].f32: height of the ellipse;\n
3788      * 4. Path:\n
3789      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
3790      * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
3791      * .value[2].f32: width of the path.\n
3792      * .value[3].f32: height of the path.\n
3793      * .string: command for drawing the path.\n
3794      *
3795      */
3796     NODE_SLIDER_BLOCK_STYLE,
3797 
3798     /**
3799      * @brief Defines the current value of the slider. This attribute can be set, reset, and obtained as required
3800      * through APIs.
3801      *
3802      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3803      * .value[0].f32: current value. \n
3804      * \n
3805      * Format of the return value {@link ArkUI_AttributeItem}:\n
3806      * .value[0].f32: current value.
3807      *
3808      */
3809     NODE_SLIDER_VALUE,
3810 
3811     /**
3812      * @brief Defines the minimum value of the slider. This attribute can be set, reset, and obtained as required
3813      * through APIs.
3814      *
3815      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3816      * .value[0].f32: minimum value. \n
3817      * \n
3818      * Format of the return value {@link ArkUI_AttributeItem}:\n
3819      * .value[0].f32: minimum value.
3820      *
3821      */
3822     NODE_SLIDER_MIN_VALUE,
3823 
3824     /**
3825      * @brief Defines the maximum value of the slider. This attribute can be set, reset, and obtained as required
3826      * through APIs.
3827      *
3828      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3829      * .value[0].f32: maximum value. \n
3830      * \n
3831      * Format of the return value {@link ArkUI_AttributeItem}:\n
3832      * .value[0].f32: maximum value.
3833      *
3834      */
3835     NODE_SLIDER_MAX_VALUE,
3836 
3837     /**
3838      * @brief Defines the step of the slider. This attribute can be set, reset, and obtained as required through APIs.
3839      *
3840      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3841      * .value[0].f32: step. The value range is [0.01, 100]. \n
3842      * \n
3843      * Format of the return value {@link ArkUI_AttributeItem}:\n
3844      * .value[0].f32: step. The value range is [0.01, 100].
3845      *
3846      */
3847     NODE_SLIDER_STEP,
3848 
3849     /**
3850      * @brief Defines whether the slider moves horizontally or vertically. This attribute can be set, reset, and
3851      * obtained as required through APIs.
3852      *
3853      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3854      * .value[0].i32: whether the slider moves horizontally or vertically.
3855      * The parameter type is {@link ArkUI_SliderDirection}. \n
3856      * \n
3857      * Format of the return value {@link ArkUI_AttributeItem}:\n
3858      * .value[0].i32: whether the slider moves horizontally or vertically.
3859      *
3860      */
3861     NODE_SLIDER_DIRECTION,
3862 
3863     /**
3864      * @brief Defines whether the slider values are reversed. This attribute can be set, reset, and obtained as required
3865      * through APIs.
3866      *
3867      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3868      * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
3869      * reversed, and <b>0</b> means the opposite. \n
3870      * \n
3871      * Format of the return value {@link ArkUI_AttributeItem}:\n
3872      * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
3873      * reversed, and <b>0</b> means the opposite.
3874      *
3875      */
3876     NODE_SLIDER_REVERSE,
3877 
3878     /**
3879      * @brief Defines the style of the slider thumb and track. This attribute can be set, reset, and obtained
3880      * as required through APIs.
3881      *
3882      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3883      * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}. \n
3884      * \n
3885      * Format of the return value {@link ArkUI_AttributeItem}:\n
3886      * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}.
3887      *
3888      */
3889     NODE_SLIDER_STYLE,
3890 
3891     /**
3892      * @brief Sets the track thickness of the slider.
3893      * This attribute can be set, reset, and obtained as required through APIs.
3894      *
3895      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3896      * .value[0].f32: track thickness of the slider, in vp. The default value is 4.0 vp when <b>NODE_SLIDER_STYLE</b>
3897      * is set to <b>ARKUI_SLIDER_STYLE_OUT_SET</b> and 20.0 vp when <b>NODE_SLIDER_STYLE</b> is set to
3898      * <b>ARKUI_SLIDER_STYLE_IN_SET</b>. \n
3899      * \n
3900      * Format of the return value {@link ArkUI_AttributeItem}:\n
3901      * .value[0].f32: track thickness of the slider, in vp. \n
3902      *
3903      */
3904     NODE_SLIDER_TRACK_THICKNESS,
3905 
3906     /**
3907      * @brief Sets whether the radio button is selected.
3908      * This attribute can be set, reset, and obtained as required through APIs.
3909      *
3910      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3911      * .value[0].i32: whether the radio button is selected. The default value is <b>false</b>.
3912      * Format of the return value {@link ArkUI_AttributeItem}:\n
3913      * .value[0].i32: whether the radio button is selected.
3914      *
3915      */
3916     NODE_RADIO_CHECKED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
3917     /**
3918      * @brief Sets the style of the radio button in selected or deselected state.
3919      * This attribute can be set, reset, and obtained as required through APIs.
3920      *
3921      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3922      * .value[0]?.u32: color of the background when the radio button is selected, in 0xARGB format.
3923      * The default value is <b>0xFF007DFF</b>. \n
3924      * .value[1]?.u32: color of the border when the radio button is deselected, in 0xARGB format.
3925      * The default value is <b>0xFF182431</b>. \n
3926      * .value[2]?.u32: color of the indicator when the radio button is selected, in 0xARGB format.
3927      * The default value is <b>0xFFFFFFFF</b>. \n
3928      * Format of the return value {@link ArkUI_AttributeItem}:\n
3929      * .value[0].u32: color of the background when the radio button is selected, in 0xARGB format.
3930      * The default value is <b>0xFF007DFF</b>. \n
3931      * .value[1].u32: color of the border when the radio button is deselected, in 0xARGB format.
3932      * The default value is <b>0xFF182431</b>. \n
3933      * .value[2].u32: color of the indicator when the radio button is selected, in 0xARGB format.
3934      * The default value is <b>0xFFFFFFFF</b>. \n
3935      *
3936      */
3937     NODE_RADIO_STYLE,
3938     /**
3939      * @brief Sets the current value of the radio button.
3940      * This attribute can be set, reset, and obtained as required through APIs.
3941      *
3942      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3943      * .string: value of the radio button. \n
3944      * \n
3945      * Format of the return value {@link ArkUI_AttributeItem}:\n
3946      * .string: value of the radio button. \n
3947      *
3948      */
3949     NODE_RADIO_VALUE,
3950     /**
3951      * @brief Sets the name of the group to which the radio button belongs. Only one radio button in a given group can
3952      * be selected at a time. This attribute can be set, reset, and obtained as required through APIs.
3953      *
3954      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3955      * .string: name of the group to which the radio button belongs. \n
3956      * \n
3957      * Format of the return value {@link ArkUI_AttributeItem}:\n
3958      * .string: name of the group to which the radio button belongs. \n
3959      *
3960      */
3961     NODE_RADIO_GROUP,
3962 
3963     /**
3964      * @brief Defines the alignment mode of the child components in the container. This attribute can be set, reset,
3965      * and obtained as required through APIs.
3966      *
3967      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3968      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
3969      * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
3970      * \n
3971      * Format of the return value {@link ArkUI_AttributeItem}:\n
3972      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
3973      *
3974      */
3975     NODE_STACK_ALIGN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_STACK,
3976 
3977     /**
3978      * @brief Defines the scrollbar status. This attribute can be set, reset, and obtained as required through APIs.
3979      *
3980      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3981      * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. The default value is
3982      * <b>ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO</b>. \n
3983      * \n
3984      * Format of the return value {@link ArkUI_AttributeItem}:\n
3985      * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. \n
3986      *
3987      */
3988     NODE_SCROLL_BAR_DISPLAY_MODE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
3989     /**
3990      * @brief Defines the width of the scrollbar. This attribute can be set, reset, and obtained as required
3991      * through APIs.
3992      *
3993      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3994      * .value[0].f32: width of the scrollbar, in vp. The default value is <b>4</b>. \n
3995      * \n
3996      * Format of the return value {@link ArkUI_AttributeItem}:\n
3997      * .value[0].f32: width of the scrollbar, in vp. \n
3998      *
3999      */
4000     NODE_SCROLL_BAR_WIDTH,
4001     /**
4002      * @brief Defines the color of the scrollbar. This attribute can be set, reset, and obtained as required
4003      * through APIs.
4004      *
4005      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4006      * .data[0].u32: color of the scrollbar, in 0xARGB format. \n
4007      * \n
4008      * Format of the return value {@link ArkUI_AttributeItem}:\n
4009      * .data[0].u32: color of the scrollbar, in 0xARGB format. \n
4010      *
4011      */
4012     NODE_SCROLL_BAR_COLOR,
4013     /**
4014      * @brief Defines the scroll direction. This attribute can be set, reset, and obtained as required through APIs.
4015      *
4016      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4017      * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}.
4018      * The default value is <b>ARKUI_SCROLL_DIRECTION_VERTICAL</b>. \n
4019      * \n
4020      * Format of the return value {@link ArkUI_AttributeItem}:\n
4021      * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}. \n
4022      *
4023      */
4024     NODE_SCROLL_SCROLL_DIRECTION,
4025     /**
4026      * @brief Defines the effect used at the edges of the component when the boundary of the scrollable content is
4027      * reached. This attribute can be set, reset, and obtained as required through APIs.
4028      *
4029      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4030      * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
4031      * The parameter type is {@link ArkUI_EdgeEffect}. The default value is <b>ARKUI_EDGE_EFFECT_NONE</b>.\n
4032      * .value[1]?.i32: whether to enable the scroll effect when the component content size is smaller than the
4033      * component itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the
4034      * opposite. The default value is <b>1</b>. \n
4035      * \n
4036      * Format of the return value {@link ArkUI_AttributeItem}:\n
4037      * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
4038      * The parameter type is {@link ArkUI_EdgeEffect}. \n
4039      * .value[1].i32: whether to enable the scroll effect when the component content size is smaller than the component
4040      * itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the opposite. \n
4041      *
4042      */
4043     NODE_SCROLL_EDGE_EFFECT,
4044     /**
4045      * @brief Defines whether to support scroll gestures. When this attribute is set to <b>false</b>, scrolling by
4046      * finger or mouse is not supported, but the scroll controller API is not affected.
4047      *
4048      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4049      * .value[0].i32: whether to support scroll gestures. The default value is <b>true</b>. \n
4050      * \n
4051      * Format of the return value {@link ArkUI_AttributeItem}:\n
4052      * .value[0].i32: whether to support scroll gestures. \n
4053      *
4054      */
4055     NODE_SCROLL_ENABLE_SCROLL_INTERACTION,
4056     /**
4057      * @brief Defines the friction coefficient. It applies only to gestures in the scrolling area, and it affects only
4058      * indirectly the scroll chaining during the inertial scrolling process.
4059      *
4060      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4061      * .value[0].f32: friction coefficient. The default value is <b>0.6</b> for non-wearable devices and <b>0.9</b>
4062      * for wearable devices. \n
4063      * \n
4064      * Format of the return value {@link ArkUI_AttributeItem}:\n
4065      * .value[0].f32: friction coefficient.
4066      *
4067      */
4068     NODE_SCROLL_FRICTION,
4069     /**
4070      * @brief Defines the scroll snapping mode. This attribute can be set, reset, and obtained as required through APIs.
4071      *
4072      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4073      * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
4074      * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
4075      * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
4076      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
4077      * start edge and the first snap point. The default value is <b>true</b>. It is valid only when there are multiple
4078      * snap points.\n
4079      * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
4080      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
4081      * end edge and the last snap point. The default value is <b>true</b>. It is valid only when there are multiple
4082      * snap points.\n
4083      * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an
4084      * edge to which the <b><Scroll></b> component can scroll.  \n
4085      * \n
4086      * Format of the return value {@link ArkUI_AttributeItem}:\n
4087      * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
4088      * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
4089      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
4090      * start edge and the first snap point.\n
4091      * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
4092      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
4093      * end edge and the last snap point.\n
4094      * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an edge
4095      * to which the <b><Scroll></b> component can scroll. \n
4096      *
4097      */
4098     NODE_SCROLL_SNAP,
4099 
4100     /**
4101      * @brief Defines the nested scrolling options. This attribute can be set, reset, and obtained as required
4102      * through APIs.
4103      *
4104      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4105      * .value[0].i32: nested scrolling option when the component scrolls forward.
4106      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
4107      * .value[1].i32: nested scrolling option when the component scrolls backward.
4108      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
4109      * \n
4110      * Format of the return value {@link ArkUI_AttributeItem}:\n
4111      * .value[0].i32: nested scrolling option when the component scrolls forward.
4112      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
4113      * .value[1].i32: nested scrolling option when the component scrolls backward.
4114      * The parameter type is {@link ArkUI_ScrollNestedMode}.
4115      *
4116      */
4117     NODE_SCROLL_NESTED_SCROLL,
4118     /**
4119      * @brief Defines the specified position to scroll to. This attribute can be set, reset, and obtained as required
4120      * through APIs.
4121      *
4122      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4123      * .value[0].f32: horizontal scrolling offset, in vp. \n
4124      * .value[1].f32: vertical scrolling offset, in vp. \n
4125      * .value[2]?.i32: scrolling duration, in milliseconds. Optional. \n
4126      * .value[3]?.i32: scrolling curve. Optional. The parameter type is {@link ArkUI_AnimationCurve}.
4127      * The default value is <b>ARKUI_CURVE_EASE</b>. \n
4128      * .value[4]?.i32: whether to enable the default spring animation. Optional. The default value <b>0</b> means not
4129      * to enable the default spring animation. \n
4130      * \n
4131      * Format of the return value {@link ArkUI_AttributeItem}:\n
4132      * .value[0].f32: horizontal scrolling offset, in vp. \n
4133      * .value[1].f32: vertical scrolling offset, in vp. \n
4134      *
4135      */
4136     NODE_SCROLL_OFFSET,
4137 
4138     /**
4139      * @brief Defines the edge position to scroll to. This attribute can be set and obtained as required through APIs.
4140      *
4141      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4142      * .value[0].i32: edge position to scroll to. The parameter type is {@link ArkUI_ScrollEdge}. \n
4143      * \n
4144      * Format of the return value {@link ArkUI_AttributeItem}:\n
4145      * .value[0].i32: whether the container at the edge position. The value <b>-1</b> means that the container is not
4146      * at the edge position. If the container is at the edge position, the parameter type is {@link ArkUI_ScrollEdge}.
4147      *
4148      */
4149     NODE_SCROLL_EDGE,
4150 
4151     /**
4152      * @brief Defines whether to enable the swipe-to-turn-pages feature. This attribute can be set, reset, and obtained
4153      * as required through APIs.
4154      *
4155      * If both <b>enablePaging</b> and <b>scrollSnap</b> are set, <b>scrollSnap</b> takes effect, but
4156      * <b>enablePaging</b> does not. \n
4157      * \n
4158      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4159      * .value[0].i32: whether to enable the swipe-to-turn-pages feature. The default value is <b>false</b>. \n
4160      * \n
4161      * Format of the return value {@link ArkUI_AttributeItem}:\n
4162      * .value[0].i32: whether to enable the swipe-to-turn-pages feature. \n
4163      *
4164      */
4165     NODE_SCROLL_ENABLE_PAGING,
4166 
4167     /**
4168      * @brief Scroll to the next or previous page.
4169      *
4170      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4171      * .value[0].i32 Indicates whether to scroll to next page. Value 0 indicates scroll to next page and value 1
4172      * indicates scroll to previous page. \n
4173      * .value[1]?.i32 Indicates whether to enable animation. Value 1 indicates enable and 0 indicates disable. \n
4174      *
4175      */
4176     NODE_SCROLL_PAGE,
4177 
4178     /**
4179      * @brief Scroll a specified distance.
4180      *
4181      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4182      * .value[0].f32:Horizontal scrolling distance in vp; \n
4183      * .value[1].f32: Vertical scrolling distance in vp; \n
4184      *
4185      */
4186     NODE_SCROLL_BY,
4187 
4188     /**
4189      * @brief Performs inertial scrolling based on the initial velocity passed in.
4190      *
4191      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4192      * .value[0].f32: Initial velocity of inertial scrolling. Unit: vp/s. If the value specified is 0, it is
4193      * considered as invalid, and the scrolling for this instance will not take effect. If the value is positive,
4194      * the scroll will move downward; if the value is negative, the scroll will move upward. \n
4195      *
4196      */
4197     NODE_SCROLL_FLING,
4198 
4199     /**
4200     * @brief Sets the fading effect for the edges of scrollable components.
4201     *
4202     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
4203     * .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.
4204     * .value[1]?.f32: length of the fading effect on edges, in vp. Default value: 32.
4205     *
4206     * Format of the return value {@link ArkUI_AttributeItem}:
4207     * .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.
4208     * .value[1].f32: length of the fading effect on edges, in vp.
4209     *
4210     * @since 14
4211     */
4212     NODE_SCROLL_FADING_EDGE,
4213 
4214     /**
4215      * @brief Defines the direction in which the list items are arranged. This attribute can be set, reset, and
4216      * obtained as required through APIs.
4217      *
4218      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4219      * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}.
4220      * The default value is <b>ARKUI_AXIS_VERTICAL</b>. \n
4221      * \n
4222      * Format of the return value {@link ArkUI_AttributeItem}:\n
4223      * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}. \n
4224      *
4225      */
4226     NODE_LIST_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
4227     /**
4228      * @brief Defines whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
4229      * component. This attribute can be set, reset, and obtained as required through APIs.
4230      *
4231      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4232      * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
4233      * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
4234      * {@link ArkUI_StickyStyle}. The default value is <b>ARKUI_STICKY_STYLE_NONE</b>. \n
4235      * \n
4236      * Format of the return value {@link ArkUI_AttributeItem}:\n
4237      * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
4238      * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
4239      * {@link ArkUI_StickyStyle}.
4240      *
4241      */
4242     NODE_LIST_STICKY,
4243     /**
4244      * @brief Defines the spacing between list items. This attribute can be set, reset, and obtained as required
4245      * through APIs.
4246      *
4247      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4248      * .value[0].f32: spacing between list items along the main axis. The default value is <b>0</b>. \n
4249      * \n
4250      * Format of the return value {@link ArkUI_AttributeItem}:\n
4251      * .value[0].f32: spacing between list items along the main axis. \n
4252      *
4253      */
4254     NODE_LIST_SPACE,
4255 
4256     /**
4257     * @brief Defines the list adapter. The attribute can be set, reset, and obtained as required through APIs.
4258     *
4259     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4260     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
4261     * \n
4262     * Format of the return value {@link ArkUI_AttributeItem}:\n
4263     * .object: {@link ArkUI_NodeAdapter} object. \n
4264     */
4265     NODE_LIST_NODE_ADAPTER,
4266 
4267     /**
4268     * @brief Sets the number of cached items in the list adapter.
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: number of cached items in the list adapter. \n
4273      * \n
4274      * Format of the return value {@link ArkUI_AttributeItem}:\n
4275      * .value[0].f32: number of cached items in the list adapter. \n
4276     */
4277     NODE_LIST_CACHED_COUNT,
4278 
4279     /**
4280      * @brief Scroll to the specified index.
4281      *
4282      * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
4283      * lead to performance issues when loading a large number of items.\n
4284      * \n
4285      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4286      * .value[0].i32:The index value of the target element to be slid to in the current container.\n
4287      * .value[1]?.i32:Set whether there is an action when sliding to the index value of a list item in the list, where
4288      * 1 indicates an action and 0 indicates no action. Default value: 0。\n
4289      * .value[2]?.i32:Specify the alignment of the sliding element with the current container,The parameter type is
4290      * {@link ArkUI_ScrollAlignment}, default value is ARKUI_SCROLL_ALIGNMENT_START. \n
4291      *
4292      */
4293     NODE_LIST_SCROLL_TO_INDEX,
4294 
4295     /**
4296      * @brief 设置List交叉轴方向宽度大于ListItem交叉轴宽度 * lanes时,
4297      * ListItem在List交叉轴方向的布局方式,支持属性设置,属性重置和属性获取接口。
4298      *
4299      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
4300      * .value[0].i32:交叉轴方向的布局方式。参数类型{@link ArkUI_ListItemAlignment} \n
4301      * \n
4302      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
4303      * .value[0].i32:交叉轴方向的布局方式。参数类型{@link ArkUI_ListItemAlignment}  \n
4304      */
4305     NODE_LIST_ALIGN_LIST_ITEM,
4306 
4307     /**
4308      * @brief Set the default spindle size for the List subcomponent.
4309      *
4310      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4311      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
4312      * \n
4313      * Format of the return value {@link ArkUI_AttributeItem}:\n
4314      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
4315      */
4316     NODE_LIST_CHILDREN_MAIN_SIZE = 1003007,
4317     /**
4318      * @brief 设置当前List初次加载时视口起始位置显示的item的索引值,支持属性设置,属性重置和属性获取接口。
4319      *
4320      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
4321      * .value[0].i32: 当前List初次加载时视口起始位置显示的item的索引值。 \n
4322      * \n
4323      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
4324      * .value[0].i32: 当前List初次加载时视口起始位置显示的item的索引值,默认值:0。 \n
4325      */
4326     NODE_LIST_INITIAL_INDEX = 1003008,
4327     /**
4328      * @brief sets the ListItem splitter style. By default, there is no splitter.
4329      * This attribute can be set, reset, and obtained as required through APIs.
4330      *
4331      * Attribute setting method parameter {@link ArkUI_AttributeItem} Format: \n
4332      *.value[0].u32: divider color, type 0xargb; \n
4333      *.value[1].f32: dividing line width; \n
4334      *.value[2].f32: the distance between the divider and the beginning of the side of the list, unit vp; \n
4335      *.value[3].f32: the distance between the divider and the end of the side of the list (unit: vp). \n
4336      * \n
4337      * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
4338      *.value[0].u32: divider color, type 0xargb; \n
4339      *.value[1].f32: dividing line width; \n
4340      *.value[2].f32: the distance between the divider and the beginning of the side of the list, unit vp; \n
4341      *.value[3].f32: the distance between the divider and the end of the side of the list (unit: vp). \n
4342      *
4343      */
4344     NODE_LIST_DIVIDER = 1003009,
4345 
4346     /**
4347      * @brief Defines whether to enable loop playback for the swiper. This attribute can be set, reset, and obtained
4348      * as required through APIs.
4349      *
4350      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4351      * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
4352      * means the opposite. The default value is <b>1/b>. \n
4353      * \n
4354      * Format of the return value {@link ArkUI_AttributeItem}:\n
4355      * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
4356      * means the opposite. The default value is <b>1</b>. \n
4357      *
4358      */
4359     NODE_SWIPER_LOOP = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
4360     /**
4361      * @brief Defines whether to enable automatic playback for child component switching in the swiper.
4362      * This attribute can be set, reset, and obtained as required through APIs.
4363      *
4364      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4365      * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b>
4366      * means to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
4367      * \n
4368      * Format of the return value {@link ArkUI_AttributeItem}:\n
4369      * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b> means
4370      * to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
4371      *
4372      */
4373     NODE_SWIPER_AUTO_PLAY,
4374     /**
4375      * @brief Defines whether to enable the navigation point indicator for the swiper. This attribute can be set,
4376      * reset, and obtained as required through APIs.
4377      *
4378      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4379      * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
4380      * navigation point indicator, and <b>0</b> means the opposite. The default value is <b>1</b>. \n
4381      * \n
4382      * Format of the return value {@link ArkUI_AttributeItem}:\n
4383      * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
4384      * navigation point indicator, and <b>0</b> means the opposite. The default value is <b>1</b>. \n
4385      *
4386      */
4387     NODE_SWIPER_SHOW_INDICATOR,
4388     /**
4389      * @brief Defines the interval for automatic playback. This attribute can be set, reset, and obtained as required
4390      * through APIs.
4391      *
4392      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4393      * .value[0].f32: interval for automatic playback, in milliseconds. \n
4394      * \n
4395      * Format of the return value {@link ArkUI_AttributeItem}:\n
4396      * .value[0].f32: interval for automatic playback, in milliseconds. \n
4397      *
4398      */
4399     NODE_SWIPER_INTERVAL,
4400     /**
4401      * @brief Defines whether vertical swiping is used for the swiper. This attribute can be set, reset, and obtained
4402      * as required through APIs.
4403      *
4404      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4405      * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
4406      * <b>0</b> means the opposite. The default value is <b>0</b>. \n
4407      * \n
4408      * Format of the return value {@link ArkUI_AttributeItem}:\n
4409      * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
4410      * <b>0</b> means the opposite. The default value is <b>0</b>. \n
4411      *
4412      */
4413     NODE_SWIPER_VERTICAL,
4414 
4415     /**
4416      * @brief Defines the duration of the animation for switching child components. This attribute can be set, reset,
4417      * and obtained as required through APIs.
4418      *
4419      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4420      * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
4421      * <b>400</b>. \n
4422      * \n
4423      * Format of the return value {@link ArkUI_AttributeItem}:\n
4424      * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
4425      * <b>400</b>. \n
4426      *
4427      */
4428     NODE_SWIPER_DURATION,
4429 
4430     /**
4431      * @brief Defines the animation curve for the swiper. This attribute can be set, reset, and obtained as required
4432      * through APIs.
4433      *
4434      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4435      * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
4436      * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
4437      * \n
4438      * Format of the return value {@link ArkUI_AttributeItem}:\n
4439      * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
4440      * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
4441      *
4442      */
4443     NODE_SWIPER_CURVE,
4444 
4445     /**
4446      * @brief Defines the spacing between child components in the swiper.
4447      * This attribute can be set, reset, and obtained as required through APIs.
4448      *
4449      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4450      * .value[0].f32: spacing between child components. \n
4451      * \n
4452      * Format of the return value {@link ArkUI_AttributeItem}:\n
4453      * .value[0].f32: spacing between child components. \n
4454      *
4455      */
4456     NODE_SWIPER_ITEM_SPACE,
4457 
4458     /**
4459      * @brief Defines the index of the child component currently displayed in the swiper.
4460      * This attribute can be set, reset, and obtained as required through APIs.
4461      *
4462      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4463      * .value[0].i32: index value of the child component. \n
4464      * \n
4465      * Format of the return value {@link ArkUI_AttributeItem}:\n
4466      * .value[0].i32: index value of the child component. \n
4467      *
4468      */
4469     NODE_SWIPER_INDEX,
4470 
4471     /**
4472      * @brief Defines the number of elements to display per page.
4473      * This attribute can be set, reset, and obtained as required through APIs.
4474      *
4475      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4476      * .value[0].i32: index value of the child component. \n
4477      * \n
4478      * Format of the return value {@link ArkUI_AttributeItem}:\n
4479      * .value[0].i32: index value of the child component. \n
4480      *
4481      */
4482     NODE_SWIPER_DISPLAY_COUNT,
4483 
4484     /**
4485      * @brief Defines whether to disable the swipe feature.
4486      * This attribute can be set, reset, and obtained as required through APIs.
4487      *
4488      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4489      * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable
4490      * the swipe feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
4491      * \n
4492      * Format of the return value {@link ArkUI_AttributeItem}:\n
4493      * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable the swipe
4494      * feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
4495      *
4496      */
4497     NODE_SWIPER_DISABLE_SWIPE,
4498 
4499     /**
4500      * @brief Defines whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
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      * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
4505      * The parameter type is {@link ArkUI_SwiperArrow}.\n
4506      * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
4507      * \n
4508      * Format of the return value {@link ArkUI_AttributeItem}:\n
4509      * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
4510      * The parameter type is {@link ArkUI_SwiperArrow}.\n
4511      * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
4512      *
4513      */
4514     NODE_SWIPER_SHOW_DISPLAY_ARROW,
4515 
4516     /**
4517      * @brief Defines the effect used at the edges of the swiper when the boundary of the scrollable content is reached.
4518      * This attribute can be set, reset, and obtained as required through APIs.
4519      *
4520      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4521      * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
4522      * The parameter type is {@link ArkUI_EdgeEffect}.\n
4523      * The default value is <b>ARKUI_EDGE_EFFECT_SPRING</b>. \n
4524      * \n
4525      * Format of the return value {@link ArkUI_AttributeItem}:\n
4526      * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
4527      * The parameter type is {@link ArkUI_EdgeEffect}. \n
4528      *
4529      */
4530     NODE_SWIPER_EDGE_EFFECT_MODE,
4531 
4532     /**
4533     * @brief Defines the swiper adapter. The attribute can be set, reset, and obtained as required through APIs.
4534     *
4535     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4536     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
4537     * \n
4538     * Format of the return value {@link ArkUI_AttributeItem}:\n
4539     * .object: {@link ArkUI_NodeAdapter} object. \n
4540     */
4541     NODE_SWIPER_NODE_ADAPTER,
4542 
4543     /**
4544     * @brief Sets the number of cached items in the swiper adapter.
4545     * This attribute can be set, reset, and obtained as required through APIs.
4546     *
4547     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4548     * .value[0].i32: number of cached items in the swiper adapter. \n
4549     * \n
4550     * Format of the return value {@link ArkUI_AttributeItem}:\n
4551     * .value[0].f32: number of cached items in the swiper adapter. \n
4552     */
4553     NODE_SWIPER_CACHED_COUNT,
4554 
4555     /**
4556      * @brief Defines the front margin of the wiper.
4557      * The attribute can be set, reset, and obtained as required through APIs.
4558      *
4559      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4560      * .value[0].f32: the front margin. The unit is vp. The default value is <b>0.0</b>\n
4561      * .value[1]?.i32: whether to ignore blanks, the default value is 0.
4562      * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
4563      * Format of the return value {@link ArkUI_AttributeItem}:\n
4564      * .value[0].f32: the front margin, the unit is vp. \n
4565      * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
4566      * the opposite. \n
4567      */
4568     NODE_SWIPER_PREV_MARGIN,
4569 
4570     /**
4571      * @brief Defines the back margin of the wiper.
4572      * The attribute can be set, reset, and obtained as required through APIs.
4573      *
4574      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4575      * .value[0].f32: the back margin. The unit is vp. The default value is <b>0.0</b>\n
4576      * .value[1]?.i32: whether to ignore blanks, the default value is 0.
4577      * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
4578      * Format of the return value {@link ArkUI_AttributeItem}:\n
4579      * .value[0].f32: the back margin, the unit is vp. \n
4580      * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
4581      * the opposite. \n
4582      */
4583     NODE_SWIPER_NEXT_MARGIN,
4584 
4585     /**
4586      * @brief Sets the navigation point indicator of the dot style for the swiper.
4587      * This attribute can be set, reset, and obtained as required through APIs.
4588      *
4589      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4590      * .value[0].i32: navigation point indicator type. The parameter type is {@link ArkUI_SwiperIndicatorType}. \n
4591      * .object: navigation point indicator. The parameter type is {@link ArkUI_SwiperIndicator}. \n
4592      * Format of the return value {@link ArkUI_AttributeItem}:\n
4593      * .value[0].i32: navigation point indicator type. The parameter type is {@link ArkUI_SwiperIndicatorType}. \n
4594      * .object: navigation point indicator. The parameter type is {@link ArkUI_SwiperIndicator}. \n
4595      *
4596      */
4597     NODE_SWIPER_INDICATOR,
4598 
4599     /**
4600     * @brief Set the nested scrolling mode for the Swiper component and parent component.
4601     *
4602     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4603     * .value[0].i32:Nested scrolling patterns for Swiper components and parent components. The parameter type is
4604     * {@link ArkUI_SwiperNestedScrollMode} \n
4605     * The default value is <b>ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY<b> \n
4606     * \n
4607     * Format of the return value {@link ArkUI_AttributeItem}:\n
4608     * .value[0].i32:Nested scrolling patterns for Swiper components and parent components. The parameter type is
4609     * {@link ArkUI_SwiperNestedScrollMode} \n
4610     */
4611     NODE_SWIPER_NESTED_SCROLL,
4612 
4613     /**
4614     * @brief Set the switcher component to flip to the specified page.
4615     *
4616     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4617     * .value[0].i32:Specify the index value of the page in Swiper.\n
4618     * .value[1]?.i32:Set whether there is an animation effect when flipping to the specified page. 1 indicates active
4619     * effect, 0 indicates no active effect, default value is 0。\n
4620     */
4621     NODE_SWIPER_SWIPE_TO_INDEX,
4622 
4623     /**
4624     * @brief Set to disable component navigation point interactions.
4625     *
4626     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4627     * .value[0].i32: Set to disable component navigation point interaction, set to true to indicate the navigation point
4628     * is interactive, default value is true.\n
4629     * \n
4630     * The return value of the attribute acquisition method {@link ArkUI_AttributeItem} format: \n
4631     * .value[0].i32: Set to disable component navigation point interactions. \n
4632     */
4633     NODE_SWIPER_INDICATOR_INTERACTIVE,
4634 
4635     /**
4636      * @brief: Set the delineation component of the ListItem, supporting property settings, property resets, and
4637      * property acquisition interfaces.
4638      *
4639      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
4640      * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
4641      * \n
4642      * The return value of the attribute acquisition method {@link ArkUI_AttributeItem} format: \n
4643      * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
4644      *
4645      */
4646     NODE_LIST_ITEM_SWIPE_ACTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM,
4647 
4648     /**
4649      * @brief Defines the header of the list item group.
4650      * This attribute can be set, reset, and obtained as required through APIs.
4651      *
4652      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4653      * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
4654      * \n
4655      * Format of the return value {@link ArkUI_AttributeItem}:\n
4656      * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
4657      *
4658      */
4659     NODE_LIST_ITEM_GROUP_SET_HEADER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM_GROUP,
4660     /**
4661      * @brief Defines the footer of the list item group. This attribute can be set, reset, and obtained as
4662      * required through APIs.
4663      *
4664      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4665      * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
4666      * \n
4667      * Format of the return value {@link ArkUI_AttributeItem}:\n
4668      * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
4669      *
4670      */
4671     NODE_LIST_ITEM_GROUP_SET_FOOTER,
4672     /**
4673      * @brief Defines the style of the divider for the list items. This attribute can be set, reset, and obtained
4674      * as required through APIs.
4675      *
4676      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4677      * .value[0].u32: color of the divider, in 0xARGB format.\n
4678      * .value[1].f32: stroke width of the divider, in vp.\n
4679      * .value[2].f32: distance between the divider and the start of the list, in vp.\n
4680      * .value[3].f32: distance between the divider and the end of the list, in vp.\n \n
4681      * \n
4682      * Format of the return value {@link ArkUI_AttributeItem}:\n
4683      * .value[0].u32: color of the divider, in 0xARGB format.\n
4684      * .value[1].f32: stroke width of the divider, in vp.\n
4685      * .value[2].f32: distance between the divider and the start of the list, in vp.\n
4686      * .value[3].f32: distance between the divider and the end of the list, in vp.\n \n
4687      *
4688      */
4689     NODE_LIST_ITEM_GROUP_SET_DIVIDER,
4690 
4691     /**
4692      * @brief Set the default spindle size for the ListItem Group subcomponent.
4693      *
4694      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4695      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
4696      * \n
4697      * Format of the return value {@link ArkUI_AttributeItem}:\n
4698      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
4699      */
4700     NODE_LIST_ITEM_GROUP_CHILDREN_MAIN_SIZE = 1005003,
4701 
4702     /**
4703      * @brief Defines the horizontal alignment mode of child components in the column.
4704      * This attribute can be set, reset, and obtained as required through APIs.
4705      *
4706      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4707      * .value[0].i32: horizontal alignment mode of child components.
4708      * The parameter type is {@link ArkUI_HorizontalAlignment}.\n
4709      * Default value: <b>ARKUI_HORIZONTAL_ALIGNMENT_CENTER</b>. \n
4710      * \n
4711      * Format of the return value {@link ArkUI_AttributeItem}:\n
4712      * .value[0].i32: horizontal alignment mode of child components.
4713      * The parameter type is {@link ArkUI_HorizontalAlignment}. \n
4714      *
4715      */
4716     NODE_COLUMN_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_COLUMN,
4717     /**
4718      * @brief Defines the vertical alignment mode of child components in the column.
4719      * This attribute can be set, reset, and obtained as required through APIs.
4720      *
4721      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4722      * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}.\n
4723      * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
4724      * \n
4725      * Format of the return value {@link ArkUI_AttributeItem}:\n
4726      * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}. \n
4727      *
4728      */
4729     NODE_COLUMN_JUSTIFY_CONTENT,
4730 
4731     /**
4732      * @brief Defines the vertical alignment mode of child components in the row.
4733      * This attribute can be set, reset, and obtained as required through APIs.
4734      *
4735      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4736      * .value[0].i32: vertical alignment mode of child components.
4737      * The parameter type is {@link ArkUI_VerticalAlignment}.\n
4738      * Default value: <b>ARKUI_VERTICAL_ALIGNMENT_CENTER</b>. \n
4739      * \n
4740      * Format of the return value {@link ArkUI_AttributeItem}:\n
4741      * .value[0].i32: vertical alignment mode of child components.
4742      * The parameter type is {@link ArkUI_VerticalAlignment}. \n
4743      *
4744      */
4745     NODE_ROW_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_ROW,
4746     /**
4747      * @brief Defines the horizontal alignment mode of child components in the row.
4748      * This attribute can be set, reset, and obtained as required through APIs.
4749      *
4750      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4751      * .value[0].i32: horizontal alignment mode of child components.
4752      * The parameter type is {@link ArkUI_FlexAlignment}.\n
4753      * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
4754      * \n
4755      * Format of the return value {@link ArkUI_AttributeItem}:\n
4756      * .value[0].i32: horizontal alignment mode of child components.
4757      * The parameter type is {@link ArkUI_FlexAlignment}. \n
4758      *
4759      */
4760     NODE_ROW_JUSTIFY_CONTENT,
4761 
4762     /**
4763      * @brief Defines the flex attribute. This attribute can be set, reset, and obtained as required through APIs.
4764      *
4765      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4766      * .value[0]?.i32: direction in which flex items are arranged. The parameter type is {@link ArkUI_FlexDirection}.
4767      * The default value is <b>ARKUI_FLEX_DIRECTION_ROW</b>.\n
4768      * .value[1]?.i32: how the flex items are wrapped. The parameter type is {@link ArkUI_FlexWrap}.
4769      * The default value is <b>ARKUI_FLEX_WRAP_NO_WRAP</b>.\n
4770      * .value[2]?.i32: alignment mode along the main axis. The parameter type is {@link ArkUI_FlexAlignment}.
4771      * The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
4772      * .value[3]?.i32: alignment mode along the cross axis. The parameter type is {@link ArkUI_ItemAlignment}.
4773      * The default value is <b>ARKUI_ITEM_ALIGNMENT_START</b>.\n
4774      * .value[4]?.i32: alignment mode along the cross axis for multi-line content. The parameter type is
4775      * {@link ArkUI_FlexAlignment}. The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
4776      * \n
4777      * Format of the return value {@link ArkUI_AttributeItem}:\n
4778      * .value[0].i32: direction in which flex items are arranged. \n
4779      * .value[1].i32: how the flex items are wrapped. \n
4780      * .value[2].i32: alignment mode along the main axis. \n
4781      * .value[3].i32: alignment mode along the cross axis. \n
4782      * .value[4]?.i32: alignment mode along the cross axis for multi-line content.\n
4783      *
4784      */
4785     NODE_FLEX_OPTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_FLEX,
4786 
4787     /**
4788      * @brief Sets whether the component is being refreshed.
4789      * This attribute can be set and obtained as required through APIs.
4790      *
4791      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4792      * .value[0].i32: The parameter type is 1 or 0.
4793      * \n
4794      * Format of the return value {@link ArkUI_AttributeItem}:\n
4795      * .value[0].i32: The parameter type is 1 or 0.
4796      *
4797      */
4798     NODE_REFRESH_REFRESHING = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
4799     /**
4800      * @brief Sets the custom content in the pull-down area.
4801      * This attribute can be set, reset, and obtained as required through APIs.
4802      *
4803      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4804      * .object: The parameter type is {@link ArkUI_NodeHandle}.
4805      *
4806      */
4807     NODE_REFRESH_CONTENT,
4808     /**
4809      * @brief Sets the pull-down ratio. This attribute can be set, reset, and obtained as required through APIs.
4810      *
4811      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4812      * .value[0].f32: pull-down ratio. The value is in the range from 0 to 1.
4813      * \n
4814      * Format of the return value {@link ArkUI_AttributeItem}:\n
4815      * .value[0].f32: pull-down ratio. The value is in the range from 0 to 1.
4816      *
4817      */
4818     NODE_REFRESH_PULL_DOWN_RATIO = 1009002,
4819     /**
4820      * @brief Sets the pull-down offset that initiates a refresh.
4821      * This attribute can be set, reset, and obtained as required through APIs.
4822      *
4823      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4824       *.value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
4825      * \n
4826      * Format of the return value {@link ArkUI_AttributeItem}:\n
4827       *.value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
4828      *
4829      */
4830     NODE_REFRESH_OFFSET = 1009003,
4831     /**
4832      * @brief Sets whether to initiate a refresh when the pull-down distance exceeds the value of <b>refreshOffset</b>.
4833      * This attribute can be set, reset, and obtained as required through APIs.
4834      *
4835      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4836      * .value[0].i32: whether to initiate a refresh. The value <b>true</b> means to initiate a refresh, and
4837      * <b>false</b> means the opposite.
4838      * \n
4839      * Format of the return value {@link ArkUI_AttributeItem}:\n
4840      * .value[0].i32: whether to initiate a refresh. The value <b>1</b> means to initiate a refresh, and
4841      * <b>0</b> means the opposite.
4842      *
4843      */
4844     NODE_REFRESH_PULL_TO_REFRESH = 1009004,
4845 
4846     /**
4847      * @brief Defines the main axis direction of the <b><WaterFlow></b> component layout.
4848      * This attribute can be set, reset, and obtained as required through APIs.
4849      *
4850      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4851      * .value[0].i32: main axis direction. The parameter type is {@link ArkUI_FlexDirection}.
4852      * \n
4853      * Format of the return value {@link ArkUI_AttributeItem}:\n
4854      * .value[0].i32: main axis direction. The parameter type is {@link ArkUI_FlexDirection}.
4855      *
4856      */
4857     NODE_WATER_FLOW_LAYOUT_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
4858     /**
4859      * @brief Sets the number of columns in the water flow layout. If this parameter is not set, one column is used
4860      * by default. This attribute can be set, reset, and obtained as required through APIs.
4861      * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
4862      * component's full width, the second column 1/4, and the third column 2/4.
4863      * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
4864      * columns based on the specified column width <b>track-size</b>.
4865      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
4866      * or a valid number.
4867      *
4868      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4869      * .string: number of columns in the layout.\n
4870      * \n
4871      * Format of the return value {@link ArkUI_AttributeItem}:\n
4872      * .string: number of columns in the layout.\n
4873      *
4874      */
4875     NODE_WATER_FLOW_COLUMN_TEMPLATE,
4876 
4877     /**
4878      * @brief Sets the number of rows in the water flow layout. If this parameter is not set, one row is used
4879      * by default. This attribute can be set, reset, and obtained as required through APIs.
4880      * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
4881      * component's full height, the second row 1/4, and the third row 2/4.
4882      * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
4883      * based on the specified row height <b>track-size</b>.
4884      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
4885      * or a valid number.
4886      *
4887      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4888      * .string: number of rows in the layout. \n
4889      * \n
4890      * Format of the return value {@link ArkUI_AttributeItem}:\n
4891      * .string: number of rows in the layout. \n
4892      *
4893      */
4894     NODE_WATER_FLOW_ROW_TEMPLATE,
4895 
4896     /**
4897      * @brief Sets the gap between columns. This attribute can be set, reset, and obtained as required through APIs.
4898      *
4899      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4900      * .value[0].f32: gap between columns, in vp.\n
4901      * \n
4902      * Format of the return value {@link ArkUI_AttributeItem}:\n
4903      * .value[0].f32: gap between columns, in vp.\n
4904      *
4905      */
4906     NODE_WATER_FLOW_COLUMN_GAP,
4907 
4908     /**
4909      * @brief Sets the gap between rows. This attribute can be set, reset, and obtained as required through APIs.
4910      *
4911      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4912      * .value[0].f32: gap between lines, in vp.\n
4913      * \n
4914      * Format of the return value {@link ArkUI_AttributeItem}:\n
4915      * .value[0].f32: gap between lines, in vp.\n
4916      *
4917      */
4918     NODE_WATER_FLOW_ROW_GAP,
4919 
4920     /**
4921      * @brief Defines the water flow section configuration.
4922      * This attribute can be set, reset, and obtained as required through APIs.
4923      *
4924      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4925      * .value[0].i32: zero-based index of the water flow item section to update.
4926      * The value is converted to an integer. \n
4927      * .object: {@ArkUI_WaterFlowSectionOption} object.\n
4928      * \n
4929      * Format of the return value {@link ArkUI_AttributeItem}:\n
4930      * .object: {@ArkUI_WaterFlowSectionOption} object.\n
4931      *
4932      */
4933     NODE_WATER_FLOW_SECTION_OPTION,
4934 
4935     /**
4936     * @brief Defines the water flow adapter. The attribute can be set, reset, and obtained as required through APIs.
4937     *
4938     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4939     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
4940      * \n
4941      * Format of the return value {@link ArkUI_AttributeItem}:\n
4942      * .object: {@link ArkUI_NodeAdapter} object. \n
4943     */
4944     NODE_WATER_FLOW_NODE_ADAPTER,
4945 
4946     /**
4947     * @brief Sets the number of cached items in the water flow adapter.
4948     * This attribute can be set, reset, and obtained as required through APIs.
4949     *
4950     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4951     * .value[0].i32: number of cached items in the water flow adapter. \n
4952     */
4953     NODE_WATER_FLOW_CACHED_COUNT,
4954     /**
4955      * @brief 设置瀑布流组件末尾的自定义显示组件。
4956      *
4957      * 属性设置方法{@link ArkUI_AttributeItem}参数格式: \n
4958      * .object:参数类型{@Link ArkUI_NodeHandle}。
4959      *
4960      */
4961     NODE_WATER_FLOW_FOOTER,
4962     /**
4963      * @brief Scroll to the specified index.
4964      *
4965      * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
4966      * lead to performance issues when loading a large number of items.\n
4967      * \n
4968      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4969      * .value[0].i32:The index value of the target element to be slid to in the current container.\n
4970      * .value[1]?.i32:Set whether there is an action when sliding to the index value of a list item in the list, where
4971      * 1 indicates an action and 0 indicates no action. Default value is 0。\n
4972      * .value[2]?.i32:Specify the alignment of the sliding element with the current container,The parameter type is
4973      * {@link ArkUI_ScrollAlignment}. Default value is </b>ARKUI_SCROLL_ALIGNMENT_START</b>。\n
4974      *
4975      */
4976     NODE_WATER_FLOW_SCROLL_TO_INDEX,
4977 
4978     /**
4979      * @brief Defines the size constraints to apply to water flow items.
4980      * This attribute can be set, reset, and obtained as required through APIs.
4981      *
4982      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4983      * .value[0].f32: minimum width. The value <b>-1</b> indicates that the minimum width is not set. \n
4984      * .value[1].f32: maximum width. The value <b>-1</b> indicates that the maximum width is not set. \n
4985      * .value[2].f32: minimum height. The value <b>-1</b> indicates that the minimum height is not set. \n
4986      * .value[3].f32: maximum height. The value <b>-1</b> indicates that the maximum height is not set. \n
4987      * \n
4988      * Format of the return value {@link ArkUI_AttributeItem}:\n
4989      * .value[0].f32: minimum width. The value <b>-1</b> indicates that the minimum width is not set. \n
4990      * .value[1].f32: maximum width. The value <b>-1</b> indicates that the maximum width is not set. \n
4991      * .value[2].f32: minimum height. The value <b>-1</b> indicates that the minimum height is not set. \n
4992      * .value[3].f32: maximum height. The value <b>-1</b> indicates that the maximum height is not set. \n
4993      *
4994      */
4995     NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE,
4996 
4997     /**
4998      * @brief Sets the number of columns in the water flow layout. If this parameter is not set, one column is used by
4999      * default. This attribute can be set, reset, and obtained as required through APIs.
5000      * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
5001      * component's full width, the second column 1/4, and the third column 2/4.
5002      * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
5003      * columns based on the specified column width <b>track-size</b>.
5004      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %, or
5005      * a valid number.
5006      *
5007      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5008      * .string: number of columns in the layout.\n
5009      * \n
5010      * Format of the return value {@link ArkUI_AttributeItem}:\n
5011      * .string: number of columns in the layout.\n
5012      *
5013      */
5014     NODE_GRID_COLUMN_TEMPLATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,
5015 
5016     /**
5017      * @brief Sets the number of rows or the minimum row height in the grid layout. If this parameter is not set, one
5018      * row is used by default. This attribute can be set, reset, and obtained as required through APIs.
5019      * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
5020      * component's full height, the second row 1/4, and the third row 2/4.
5021      * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
5022      * based on the specified row height <b>track-size</b>.
5023      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %, or
5024      * a valid number.
5025      *
5026      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5027      * .string: number of rows in the layout. \n
5028      * \n
5029      * Format of the return value {@link ArkUI_AttributeItem}:\n
5030      * .string: number of rows in the layout. \n
5031      *
5032      */
5033     NODE_GRID_ROW_TEMPLATE,
5034 
5035     /**
5036      * @brief Sets the gap between columns. This attribute can be set, reset, and obtained as required through APIs.
5037      *
5038      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5039      * .value[0].f32: gap between columns, in vp.\n
5040      * \n
5041      * Format of the return value {@link ArkUI_AttributeItem}:\n
5042      * .value[0].f32: gap between columns, in vp.\n
5043      *
5044      */
5045     NODE_GRID_COLUMN_GAP,
5046 
5047     /**
5048      * @brief Sets the gap between rows. This attribute can be set, reset, and obtained as required through APIs.
5049      *
5050      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5051      * .value[0].f32: gap between lines, in vp.\n
5052      * \n
5053      * Format of the return value {@link ArkUI_AttributeItem}:\n
5054      * .value[0].f32: gap between lines, in vp.\n
5055      *
5056      */
5057     NODE_GRID_ROW_GAP,
5058 
5059     /**
5060      * @brief Defines the grid adapter. The attribute can be set, reset, and obtained as required through APIs.
5061      *
5062      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5063      * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
5064      * \n
5065      * Format of the return value {@link ArkUI_AttributeItem}:\n
5066      * .object: {@link ArkUI_NodeAdapter} object. \n
5067      */
5068     NODE_GRID_NODE_ADAPTER,
5069 
5070     /**
5071      * @brief Sets the number of cached items in the grid adapter.
5072      * This attribute can be set, reset, and obtained as required through APIs.
5073      *
5074      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5075      * .value[0].i32: number of cached items in the water flow adapter. \n
5076      */
5077     NODE_GRID_CACHED_COUNT,
5078 
5079     /**
5080      * @brief 设置RelativeContaine容器内的辅助线,支持属性设置,属性重置和属性获取接口。
5081      *
5082      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
5083      * .object: RelativeContaine容器内的辅助线: \n
5084      * \n
5085      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
5086      * .object: RelativeContaine容器内的辅助线:  \n
5087      *
5088      */
5089     NODE_RELATIVE_CONTAINER_GUIDE_LINE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RELATIVE_CONTAINER,
5090 
5091     /**
5092      * @brief 设置RelativeContaine容器内的屏障,支持属性设置,属性重置和属性获取接口。
5093      *
5094      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
5095      * .object: RelativeContaine容器内的辅助线: \n
5096      * \n
5097      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
5098      * .object: RelativeContaine容器内的屏障:  \n
5099      *
5100      */
5101     NODE_RELATIVE_CONTAINER_BARRIER,
5102 
5103     /**
5104      * @brief 设置帧动画组件的图片帧信息集合。不支持动态更新。支持属性设置,属性重置和属性获取接口。
5105      *
5106      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
5107      * .size:图片帧的数量; \n
5108      * .object:图片帧数组,参数类型为{@ArkUI_ImageFrameInfo}数组; \n
5109      * \n
5110      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
5111      * .size:图片帧的数量; \n
5112      * .object:图片帧数组,参数类型为{@ArkUI_ImageFrameInfo}数组; \n
5113      *
5114     */
5115     NODE_IMAGE_ANIMATOR_IMAGES = ARKUI_NODE_IMAGE_ANIMATOR * MAX_NODE_SCOPE_NUM,
5116     /**
5117      * @brief 控制帧动画组件的播放状态。支持属性设置,属性重置和属性获取接口。
5118      *
5119      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
5120      * .value[0].i32:控制动画的播放状态,参数类型为{@link ArkUI_AnimationStatus},默认值为初始状态。 \n
5121      *
5122      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
5123      * .value[0].i32:控制动画的播放状态,参数类型为{@link ArkUI_AnimationStatus}。 \n
5124      *
5125     */
5126     NODE_IMAGE_ANIMATOR_STATE = 19001,
5127     /**
5128      * @brief 设置帧动画的播放时长,当数组中任意一帧图片单独设置了duration属性后,该属性设置无效。
5129      * 支持属性设置,属性重置和属性获取接口。
5130      *
5131      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
5132      * .value[0].i32:播放时长,单位为毫秒,默认值1000。 \n
5133      *
5134      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
5135      * .value[0].i32:播放时长,单位为毫秒,默认值1000。 \n
5136      *
5137     */
5138     NODE_IMAGE_ANIMATOR_DURATION = 19002,
5139     /**
5140      * @brief 设置帧动画的播放方向。支持属性设置,属性重置和属性获取接口。
5141      *
5142      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
5143      * .value[0].i32:播放方向,0表示从第一张图片播放到最后一张,1表示从最后一张图片播放到第一张,默认值为0。 \n
5144      *
5145      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
5146      * .value[0].i32:播放方向,0表示从第一张图片播放到最后一张,1表示从最后一张图片播放到第一张。 \n
5147      *
5148     */
5149     NODE_IMAGE_ANIMATOR_REVERSE = 19003,
5150     /**
5151      * @brief 设置图片大小是否固定为组件大小。支持属性设置,属性重置和属性获取接口。
5152      *
5153      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
5154      * .value[0].i32:设置图片大小是否固定为组件大小,1表示图片大小与组件大小一致。0表示每一张图片的width、height、top和left都要单独设置,默认值为1。\n
5155      *
5156      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
5157      * .value[0].i32:设置图片大小是否固定为组件大小,1表示图片大小与组件大小一致。0表示每一张图片的width、height、top和left都要单独设置。 \n
5158      *
5159     */
5160     NODE_IMAGE_ANIMATOR_FIXED_SIZE = 19004,
5161     /**
5162      * @brief 设置帧动画在当前播放方向下,动画开始前和结束后的状态。支持属性设置,属性重置和属性获取接口。
5163      *
5164      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
5165      * .value[0].i32:当前播放方向下,动画开始前和结束后的状态,参数类型为{ArkUI_AnimationFillMode},默认值为FORWARDS。 \n
5166      *
5167      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
5168      * .value[0].i32:当前播放方向下,动画开始前和结束后的状态,参数类型为{ArkUI_AnimationFillMode}。 \n
5169      *
5170     */
5171     NODE_IMAGE_ANIMATOR_FILL_MODE = 19005,
5172     /**
5173      * @brief 设置帧动画的播放次数。支持属性设置,属性重置和属性获取接口。
5174      *
5175      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
5176      * .value[0].i32:播放次数。 \n
5177      *
5178      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
5179      * .value[0].i32:播放次数。 \n
5180      *
5181     */
5182     NODE_IMAGE_ANIMATOR_ITERATION = 19006,
5183 } ArkUI_NodeAttributeType;
5184 
5185 #define MAX_COMPONENT_EVENT_ARG_NUM 12
5186 /**
5187  * @brief Defines the parameter type of the component callback event.
5188  *
5189  * @since 12
5190  */
5191 typedef struct {
5192     /** Data array object. */
5193     ArkUI_NumberValue data[MAX_COMPONENT_EVENT_ARG_NUM];
5194 } ArkUI_NodeComponentEvent;
5195 
5196 /**
5197  * @brief Defines the string type parameter used by the component callback event.
5198  *
5199  * @since 12
5200  */
5201 typedef struct {
5202     /** String. */
5203     const char* pStr;
5204 } ArkUI_StringAsyncEvent;
5205 
5206 /**
5207  * @brief Enumerates the event types supported by the NativeNode component.
5208  *
5209  * @since 12
5210  */
5211 typedef enum {
5212     /**
5213      * @brief Defines the gesture event type.
5214      *
5215      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5216      * {@link ArkUI_UIInputEvent}.
5217      */
5218     NODE_TOUCH_EVENT = 0,
5219 
5220     /**
5221      * @brief Defines the mount event.
5222      *
5223      * This event is triggered when the component is mounted and displayed. \n
5224      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5225      * {@link ArkUI_NodeComponentEvent}. \n
5226      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
5227      */
5228     NODE_EVENT_ON_APPEAR,
5229     /**
5230      * @brief Defines the unmount event.
5231      *
5232      * This event is triggered when the component is unmounted and hidden. \n
5233      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5234      * {@link ArkUI_NodeComponentEvent}. \n
5235      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
5236      */
5237     NODE_EVENT_ON_DISAPPEAR,
5238 
5239     /**
5240      * @brief Defines the area change event.
5241      *
5242      * This event is triggered when the component's size, position, or any other attribute that may
5243      * affect its display area changes. \n
5244      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5245      *  {@link ArkUI_NodeComponentEvent}. \n
5246      * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
5247      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: original width of the target element, in vp.
5248      * The value is a number. \n
5249      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: original height of the target element, in vp.
5250      * The value is a number. \n
5251      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: original X coordinate of the target element's upper left corner
5252      * relative to the parent element's, in vp. The value is a number. \n
5253      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: original Y coordinate of the target element's upper left corner
5254      * relative to the parent element's, in vp. The value is a number. \n
5255      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: original X coordinate of the target element's upper left corner
5256      * relative to the page's, in vp. The value is a number. \n
5257      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: original Y coordinate of the target element's upper left corner
5258      * relative to the page's, in vp. The value is a number. \n
5259      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: new width of the target element, in vp. The value is a number. \n
5260      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: new height of the target element, in vp. The value is a number. \n
5261      * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: new X coordinate of the target element's upper left corner relative
5262      * to the parent element's, in vp. The value is a number. \n
5263      * <b>ArkUI_NodeComponentEvent.data[9].f32</b>: new Y coordinate of the target element's upper left corner relative
5264      * to the parent element's, in vp. The value is a number. \n
5265      * <b>ArkUI_NodeComponentEvent.data[10].f32</b>: new X coordinate of the target element's upper left corner relative
5266      * to the page's, in vp. The value is a number. \n
5267      * <b>ArkUI_NodeComponentEvent.data[11].f32</b>: new Y coordinate of the target element's upper left corner relative
5268      * to the page's, in vp. The value is a number. \n
5269      */
5270     NODE_EVENT_ON_AREA_CHANGE,
5271     /**
5272      * @brief Defines the focus event.
5273      *
5274      * This event is triggered when the component obtains the focus. \n
5275      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5276      * {@link ArkUI_NodeComponentEvent}. \n
5277      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
5278      */
5279     NODE_ON_FOCUS,
5280     /**
5281      * @brief Defines the blur event.
5282      *
5283      * This event is triggered when the component loses the focus. \n
5284      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5285      * {@link ArkUI_NodeComponentEvent}. \n
5286      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
5287      */
5288     NODE_ON_BLUR,
5289     /**
5290      * @brief Defines the click event.
5291      *
5292      * This event is triggered when the component is clicked. \n
5293      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5294      * {@link ArkUI_NodeComponentEvent}. \n
5295      * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
5296      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: X coordinate of the click relative to the upper left corner of the
5297      * clicked component's original area, in vp. \n
5298      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Y coordinate of the click relative to the upper left corner of the
5299      * clicked component's original area, in vp. \n
5300      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: event timestamp. It is the interval between the time when the event
5301      * is triggered and the time when the system starts, in microseconds. \n
5302      * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: event input device. The value <b>1</b> indicates the mouse,
5303      * <b>2</b> indicates the touchscreen, and <b>4</b> indicates the key. \n
5304      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: X coordinate of the click relative to the upper left corner of the
5305      * application window, in vp. \n
5306      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: Y coordinate of the click relative to the upper left corner of the
5307      * application window, in vp. \n
5308      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: X coordinate of the click relative to the upper left corner of the
5309      * application screen, in vp. \n
5310      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: Y coordinate of the click relative to the upper left corner of the
5311      * application screen, in vp. \n
5312      */
5313     NODE_ON_CLICK,
5314     /**
5315      * @brief Defines event interception.
5316      *
5317      * This event is triggered when the component is touched. \n
5318      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5319      * {@link ArkUI_UIInputEvent}. \n
5320      */
5321     NODE_ON_TOUCH_INTERCEPT,
5322     /**
5323      * @brief Defines the visible area change event.
5324      *
5325      * This event is triggered when the ratio of the component's visible area to its total area is greater than or less
5326      * than the threshold.
5327      * Before registering this event, you must set <b>NODE_VISIBLE_AREA_CHANGE_RATIO</b>. \n
5328      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5329      * {@link ArkUI_NodeComponentEvent}. \n
5330      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
5331      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
5332      * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates a
5333      * decrease. \n
5334      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area when this
5335      * callback is invoked. \n
5336      */
5337     NODE_EVENT_ON_VISIBLE_AREA_CHANGE,
5338     /**
5339      * @brief Defines the event triggered when the mouse pointer is moved over or away from the component.
5340      *
5341       \n
5342      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5343      * {@link ArkUI_NodeComponentEvent}. \n
5344      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
5345      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: whether the mouse pointer is hovered over the component.
5346      * The value <b>1</b> indicates that the mouse pointer is hovered over the component, and <b>0</b> indicates that
5347      * the mouse pointer is moved away from the component. \n
5348      */
5349     NODE_ON_HOVER,
5350     /**
5351      * @brief Defines the click event.
5352      *
5353      * This event is triggered when the component is clicked by a mouse device button or when the mouse pointer moves
5354      * within the component. \n
5355      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5356      * {@link ArkUI_UIInputEvent}. \n
5357      */
5358     NODE_ON_MOUSE,
5359     /**
5360      * @brief Defines the mount event.
5361      *
5362      * This event is triggered when the component is mounted. \n
5363      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5364      * {@link ArkUI_NodeComponentEvent}. \n
5365      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
5366      */
5367     NODE_EVENT_ON_ATTACH,
5368     /**
5369      * @brief Defines the unmount event.
5370      *
5371      * This event is triggered when the component is unmount. \n
5372      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5373      * {@link ArkUI_NodeComponentEvent}. \n
5374      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
5375      */
5376     NODE_EVENT_ON_DETACH,
5377     /**
5378      * @brief 无障碍支持操作事件触发。
5379      *
5380      * 触发该事件的条件:已设置无障碍操作类型,并进行相应操作。\n
5381      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
5382      * {@link ArkUI_NodeComponentEvent}中包含1个参数: \n
5383      * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: 触发回调的操作类型,参数类型{@link ArkUI_AccessibilityActionType} \n
5384      *
5385      */
5386     NODE_ON_ACCESSIBILITY_ACTIONS,
5387 
5388     /**
5389      * @brief Notifies the listener of the interaction state prior to a drop and drop operation.
5390      *
5391      * This event is triggered when a drag operation is about to start on a draggable item. \n
5392      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5393      * {@link ArkUI_NodeComponentEvent}. \n
5394      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
5395      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: corresponds to {@link ArkUI_PreDragStatus}. \n
5396      */
5397     NODE_ON_PRE_DRAG = 14,
5398     /**
5399      * @brief Called when the user starts to drag an ite
5400      *
5401      * A drag operation is recognized only when the dragged item is moved far enough. \n
5402      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
5403      * {@link ArkUI_NodeEvent} object. \n
5404      */
5405     NODE_ON_DRAG_START = 15,
5406     /**
5407      * @brief Called when a dragged item enters the boundaries of the current component.
5408      *
5409      * The current component refers to the component that listens for this event. \n
5410      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
5411      * {@link ArkUI_NodeEvent} object. \n
5412      */
5413     NODE_ON_DRAG_ENTER = 16,
5414     /**
5415      * @brief Called  when a dragged item moves in the current component.
5416      *
5417      * The current component refers to the component that listens for this event. \n
5418      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
5419      * {@link ArkUI_NodeEvent} object. \n
5420      */
5421     NODE_ON_DRAG_MOVE = 17,
5422     /**
5423      * @brief Called when a dragged item leaves the boundaries of the current component.
5424      *
5425      * The current component refers to the component that listens for this event. \n
5426      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
5427      * {@link ArkUI_NodeEvent} object. \n
5428      */
5429     NODE_ON_DRAG_LEAVE = 18,
5430     /**
5431      * @brief Called when a dragged item is dropped on the current component.
5432      * The component can obtain the drag data for processing through the callback.
5433      *
5434      * The current component refers to the component that listens for this event. \n
5435      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
5436      * {@link ArkUI_NodeEvent} object. \n
5437      */
5438     NODE_ON_DROP = 19,
5439     /**
5440      * @brief Called when a drag operation ends.
5441      * The drag source can obtain the drag result by registering this callback.
5442      *
5443      * A drag operation ends when the dragged item is released.
5444      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
5445      * {@link ArkUI_NodeEvent} object. \n
5446      */
5447     NODE_ON_DRAG_END = 20,
5448     /**
5449      * @brief 文本设置TextDataDetectorConfig且识别成功时,触发onDetectResultUpdate回调。
5450      *
5451      * 触发该事件的条件:文本设置TextDataDetectorConfig且识别成功后。\n
5452      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_StringAsyncEvent}。\n
5453      * {@link ArkUI_StringAsyncEvent}中包含1个参数:\n
5454      * <b>ArkUI_StringAsyncEvent.pStr</b>:表示文本识别的结果,Json格式。\n
5455      *
5456      */
5457     NODE_TEXT_ON_DETECT_RESULT_UPDATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
5458     /**
5459      * @brief Defines the image loading success event.
5460      *
5461      * This event is triggered when an image is successfully loaded or decoded. \n
5462      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5463      * {@link ArkUI_NodeComponentEvent}. \n
5464      * {@link ArkUI_NodeComponentEvent} contains nine parameters:\n
5465      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: loading status. The value <b>0</b> indicates that the image is
5466      * loaded successfully, and the value <b>1</b> indicates that the image is decoded successfully. \n
5467      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: width of the image, in px. \n
5468      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: height of the image, in px. \n
5469      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: width of the component, in px. \n
5470      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: height of the component, in px. \n
5471      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: offset of the rendered content relative to the component on the
5472      * x-axis, in px. \n
5473      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: offset of the rendered content relative to the component on the
5474      * y-axis, in px. \n
5475      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: actual rendered width of the image, in px. \n
5476      * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: actual rendered height of the image, in px. \n
5477      */
5478     NODE_IMAGE_ON_COMPLETE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
5479     /**
5480      * @brief Defines the image loading failure event.
5481      *
5482      * This event is triggered when an error occurs during image loading. \n
5483      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5484      * {@link ArkUI_NodeComponentEvent}. \n
5485      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
5486      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>error code:\n
5487      * 401: The image could not be obtained because the image path is invalid. \n
5488      * 103101: The image format is not supported. \n
5489      */
5490     NODE_IMAGE_ON_ERROR,
5491     /**
5492      * @brief Defines the SVG animation playback completion event.
5493      *
5494      * This event is triggered when the animation playback in the loaded SVG image is complete. \n
5495      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5496      * {@link ArkUI_NodeComponentEvent}. \n
5497      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
5498      */
5499     NODE_IMAGE_ON_SVG_PLAY_FINISH,
5500     /**
5501      * @brief Defines image download process event.
5502      *
5503      * This event is triggered when downloading webpage images from page components.\n
5504      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5505      * {@link ArkUI_NodeComponentEvent}. \n
5506      * {@link ArkUI_NodeComponentEvent} contains two parameter:\n
5507      * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: the num of bytes downloaded. \n
5508      * <b>ArkUI_NodeComponentEvent.data[1].u32</b>: the total number of bytes to download. \n
5509      */
5510     NODE_IMAGE_ON_DOWNLOAD_PROGRESS,
5511     /**
5512      * @brief Defines the event triggered when the toggle status changes.
5513      *
5514       \n
5515      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5516      * {@link ArkUI_NodeComponentEvent}. \n
5517      * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
5518      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: toggle status. <b>1</b>: on; <b>0</b>: off.
5519      *
5520      */
5521     NODE_TOGGLE_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
5522     /**
5523      * @brief Defines the event triggered when the text input content changes.
5524      *
5525       \n
5526      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5527      * {@link ArkUI_StringAsyncEvent}. \n
5528      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
5529      * <b>ArkUI_StringAsyncEvent.pStr</b>: text input.
5530      *
5531      */
5532     NODE_TEXT_INPUT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
5533     /**
5534      * @brief Defines the event triggered when the Enter key of the text input method is pressed.
5535      *
5536       \n
5537      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5538      * {@link ArkUI_NodeComponentEvent}. \n
5539      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
5540      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Enter key type of the input method.
5541      *
5542      */
5543     NODE_TEXT_INPUT_ON_SUBMIT,
5544     /**
5545      * @brief Defines the event triggered when the cut button on the pasteboard, which displays when the text box
5546      * is long pressed, is clicked.
5547      *
5548       \n
5549      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5550      * {@link ArkUI_StringAsyncEvent}. \n
5551      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
5552      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
5553      *
5554      */
5555     NODE_TEXT_INPUT_ON_CUT,
5556     /**
5557      * @brief Defines the event triggered when the paste button on the pasteboard, which displays when the text box
5558      * is long pressed, is clicked.
5559      *
5560       \n
5561      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5562      * {@link ArkUI_StringAsyncEvent}. \n
5563      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
5564      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
5565      *
5566      */
5567     NODE_TEXT_INPUT_ON_PASTE,
5568     /**
5569      * @brief Defines the event triggered when the text selection position changes.
5570      *
5571       \n
5572      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5573      * {@link ArkUI_NodeComponentEvent}. \n
5574      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
5575      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
5576      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
5577      *
5578      */
5579     NODE_TEXT_INPUT_ON_TEXT_SELECTION_CHANGE,
5580 
5581     /**
5582      * @brief 输入状态变化时,触发该回调。
5583      *
5584      * 触发该事件的条件:输入状态变化时。\n
5585      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
5586      * {@link ArkUI_NodeComponentEvent}中包含1个参数:\n
5587      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>:表示true表示正在输入。\n
5588      *
5589      */
5590     NODE_TEXT_INPUT_ON_EDIT_CHANGE,
5591 
5592     /**
5593      * @brief textInput输入内容发生变化时触发该事件。
5594      *
5595      * 触发该事件的条件:输入内容发生变化时。\n
5596      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
5597      * {@link ArkUI_NodeComponentEvent}中包含2个参数:\n
5598      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:表示文本的宽度。\n
5599      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>:表示文本的高度。\n
5600      *
5601      */
5602     NODE_TEXT_INPUT_ON_CONTENT_SIZE_CHANGE,
5603 
5604     /**
5605      * @brief Defines the event triggered when matching with the regular expression specified by
5606      * <b>NODE_TEXT_INPUT_INPUT_FILTER</b> fails.
5607      *
5608       \n
5609      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5610      * {@link ArkUI_StringAsyncEvent}. \n
5611      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
5612      * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
5613      *
5614      */
5615     NODE_TEXT_INPUT_ON_INPUT_FILTER_ERROR,
5616     /**
5617      * @brief 文本内容滚动时,触发该回调。
5618      *
5619      * 触发该事件的条件:文本内容滚动时。\n
5620      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
5621      * {@link ArkUI_NodeComponentEvent}中包含2个参数:\n
5622      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>:表示文本在内容区的横坐标偏移。\n
5623      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>:表示文本在内容区的纵坐标偏移。\n
5624      *
5625      */
5626     NODE_TEXT_INPUT_ON_CONTENT_SCROLL,
5627     /**
5628      * @brief 定义在将要输入时,触发回调的枚举值。
5629      *
5630      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}。\n
5631      * 通过OH_ArkUI_NodeEvent_GetNumberValue获取到index为0的value.f32:插入的值的位置信息。\n
5632      * 通过OH_ArkUI_NodeEvent_GetStringValue获取到index为0的buffer字符串:插入的值。
5633      * @return 在返回true时,表示正常插入,返回false时,表示不插入。
5634      * 可通过OH_ArKUI_NodeEvent_SetReturnValue设置返回值。\n
5635      */
5636     NODE_TEXT_INPUT_ON_WILL_INSERT = 7009,
5637     /**
5638      * @brief 定义在输入完成时,触发回调的枚举值。
5639      *
5640      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}。\n
5641      * 通过OH_ArkUI_NodeEvent_GetNumberValue获取到index为0的value.f32:插入的值的位置信息。\n
5642      * 通过OH_ArkUI_NodeEvent_GetStringValue获取到index为0的buffer字符串:插入的值。
5643      */
5644     NODE_TEXT_INPUT_ON_DID_INSERT = 7010,
5645     /**
5646      * @brief 定义在将要删除时,触发回调的枚举值。
5647      *
5648      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}。\n
5649      * 通过OH_ArkUI_NodeEvent_GetNumberValue获取到index为0的value.f32:删除的值的位置信息。\n
5650      * 通过OH_ArkUI_NodeEvent_GetNumberValue获取到index为1的value.i32:删除值的方向。\n
5651      * 通过OH_ArkUI_NodeEvent_GetStringValue获取到index为0的buffer字符串:删除的值。
5652      * @return 在返回true时,表示正常插入,返回false时,表示不插入。\n
5653      * 可通过OH_ArKUI_NodeEvent_SetReturnValue设置返回值。\n
5654      */
5655     NODE_TEXT_INPUT_ON_WILL_DELETE = 7011,
5656     /**
5657      * @brief 定义在删除完成时,触发回调的枚举值。
5658      *
5659      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}。\n
5660      * 通过OH_ArkUI_NodeEvent_GetNumberValue获取到index为0的value.f32:删除的值的位置信息。\n
5661      * 通过OH_ArkUI_NodeEvent_GetNumberValue获取到index为1的value.i32:删除值的方向。\n
5662      * 通过OH_ArkUI_NodeEvent_GetStringValue获取到index为0的buffer字符串:删除的值。
5663      */
5664     NODE_TEXT_INPUT_ON_DID_DELETE = 7012,
5665     /**
5666      * @brief Defines the event triggered when the input in the text box changes.
5667      *
5668       \n
5669      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5670      * {@link ArkUI_StringAsyncEvent}. \n
5671      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
5672      * <b>ArkUI_StringAsyncEvent.pStr</b>: text entered.
5673      *
5674      */
5675     NODE_TEXT_AREA_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
5676     /**
5677      * @brief Defines the event triggered when the paste button on the pasteboard, which displays when the text box is
5678      * long pressed, is clicked.
5679      *
5680       \n
5681      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5682      * {@link ArkUI_StringAsyncEvent}. \n
5683      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
5684      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
5685      *
5686      */
5687     NODE_TEXT_AREA_ON_PASTE,
5688     /**
5689      * @brief Defines the event triggered when the text selection position changes.
5690      *
5691       \n
5692      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5693      * {@link ArkUI_NodeComponentEvent}. \n
5694      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
5695      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
5696      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
5697      *
5698      */
5699     NODE_TEXT_AREA_ON_TEXT_SELECTION_CHANGE,
5700     /**
5701      * @brief 设置NODE_TEXT_AREA_INPUT_FILTER,正则匹配失败时触发。
5702      *
5703      * 触发该事件的条件:正则匹配失败时。\n
5704      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_StringAsyncEvent}。\n
5705      * {@link ArkUI_StringAsyncEvent}中包含1个参数:\n
5706      * <b>ArkUI_StringAsyncEvent.pStr</b>:表示正则匹配失败时,被过滤的内容。\n
5707      *
5708      */
5709     NODE_TEXT_AREA_ON_INPUT_FILTER_ERROR,
5710     /**
5711      * @brief 文本内容滚动时,触发该回调。
5712      *
5713      * 触发该事件的条件:文本内容滚动时。\n
5714      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
5715      * {@link ArkUI_NodeComponentEvent}中包含2个参数:\n
5716      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>:表示文本在内容区的横坐标偏移。\n
5717      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>:表示文本在内容区的纵坐标偏移。\n
5718      *
5719      */
5720     NODE_TEXT_AREA_ON_CONTENT_SCROLL,
5721 
5722     /**
5723      * @brief 输入状态变化时,触发该回调。
5724      *
5725      * 触发该事件的条件:输入状态变化时。\n
5726      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
5727      * {@link ArkUI_NodeComponentEvent}中包含1个参数:\n
5728      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>:表示true表示正在输入。\n
5729      *
5730      */
5731     NODE_TEXT_AREA_ON_EDIT_CHANGE,
5732 
5733     /**
5734      * @brief textArea按下输入法回车键触发该事件。
5735      *
5736      * 触发该事件的条件:按下输入法回车键。keyType为ARKUI_ENTER_KEY_TYPE_NEW_LINE时不触发\n
5737      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
5738      * {@link ArkUI_NodeComponentEvent}中包含1个参数:\n
5739      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>:输入法回车键类型。
5740      *
5741      */
5742     NODE_TEXT_AREA_ON_SUBMIT,
5743 
5744     /**
5745      * @brief textArea输入内容发生变化时触发该事件。
5746      *
5747      * 触发该事件的条件:输入内容发生变化时。\n
5748      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
5749      * {@link ArkUI_NodeComponentEvent}中包含2个参数:\n
5750      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:表示文本的宽度。\n
5751      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>:表示文本的高度。\n
5752      *
5753      */
5754     NODE_TEXT_AREA_ON_CONTENT_SIZE_CHANGE,
5755 /**
5756      * @brief 定义在将要输入时,触发回调的枚举值。
5757      *
5758      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}。\n
5759      * 通过OH_ArkUI_NodeEvent_GetNumberValue获取到index为0的value.f32:插入的值的位置信息。\n
5760      * 通过OH_ArkUI_NodeEvent_GetStringValue获取到index为0的buffer字符串:插入的值。
5761      * @return 在返回true时,表示正常插入,返回false时,表示不插入。
5762      * 可通过OH_ArKUI_NodeEvent_SetReturnValue设置返回值。\n
5763      */
5764     NODE_TEXT_AREA_ON_WILL_INSERT = 8008,
5765     /**
5766      * @brief 定义在输入完成时,触发回调的枚举值。
5767      *
5768      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}。\n
5769      * 通过OH_ArkUI_NodeEvent_GetNumberValue获取到index为0的value.f32:插入的值的位置信息。\n
5770      * 通过OH_ArkUI_NodeEvent_GetStringValue获取到index为0的buffer字符串:插入的值。
5771      */
5772     NODE_TEXT_AREA_ON_DID_INSERT = 8009,
5773     /**
5774      * @brief 定义在将要删除时,触发回调的枚举值。
5775      *
5776      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}。\n
5777      * 通过OH_ArkUI_NodeEvent_GetNumberValue获取到index为0的value.f32:删除的值的位置信息。\n
5778      * 通过OH_ArkUI_NodeEvent_GetNumberValue获取到index为1的value.i32:删除值的方向。\n
5779      * 通过OH_ArkUI_NodeEvent_GetStringValue获取到index为0的buffer字符串:删除的值。
5780      * @return 在返回true时,表示正常插入,返回false时,表示不插入。\n
5781      * 可通过OH_ArKUI_NodeEvent_SetReturnValue设置返回值。\n
5782      */
5783     NODE_TEXT_AREA_ON_WILL_DELETE = 8010,
5784     /**
5785      * @brief 定义在删除完成时,触发回调的枚举值。
5786      *
5787      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}。\n
5788      * 通过OH_ArkUI_NodeEvent_GetNumberValue获取到index为0的value.f32:删除的值的位置信息。\n
5789      * 通过OH_ArkUI_NodeEvent_GetNumberValue获取到index为1的value.i32:删除值的方向。\n
5790      * 通过OH_ArkUI_NodeEvent_GetStringValue获取到index为0的buffer字符串:删除的值。
5791      */
5792     NODE_TEXT_AREA_ON_DID_DELETE = 8011,
5793     /**
5794      * @brief Defines the event triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX</b> component changes.
5795      *
5796      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5797      * {@link ArkUI_NodeComponentEvent}. \n
5798      * <b>ArkUI_NodeComponentEvent.data[0].i32</b><b>1</b>: selected; <b>0</b>: not selected.\n
5799      */
5800     NODE_CHECKBOX_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,
5801 
5802     /**
5803      * @brief Defines the event triggered when a date is selected in the <b>ARKUI_NODE_DATE_PICKER</b> component.
5804      *
5805       \n
5806      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5807      * {@link ArkUI_NodeComponentEvent}. \n
5808      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
5809      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: year of the selected date. \n
5810      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: month of the selected date. Value range: [0-11]. \n
5811      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: day of the selected date. \n
5812      */
5813     NODE_DATE_PICKER_EVENT_ON_DATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
5814 
5815     /**
5816      * @brief Defines the event triggered when a time is selected in the <b>ARKUI_NODE_TIME_PICKER</b> component.
5817      *
5818       \n
5819      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5820      * {@link ArkUI_NodeComponentEvent}. \n
5821      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
5822      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: hour of the selected time. Value range: [0-23]. \n
5823      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: minute of the selected time. Value range: [0-59]. \n
5824      */
5825     NODE_TIME_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
5826 
5827     /**
5828      * @brief Defines the event triggered when an item is selected in the <b>ARKUI_NODE_TEXT_PICKER</b> component.
5829      *
5830       \n
5831      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5832      * {@link ArkUI_NodeComponentEvent}. \n
5833      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
5834      * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
5835      */
5836     NODE_TEXT_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,
5837 
5838     /**
5839      * @brief Defines the event triggered when a date is selected in the <b>NODE_CALENDAR_PICKER</b>.
5840      *
5841      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5842      * {@link ArkUI_NodeComponentEvent}. \n
5843      * <b>ArkUI_NodeComponent.data[0].u32</b>: year of the selected date. \n
5844      * <b>ArkUI_NodeComponent.data[1].u32</b>: month of the selected date. \n
5845      * <b>ArkUI_NodeComponent.data[2].u32</b>: day of the selected date. \n
5846      */
5847     NODE_CALENDAR_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
5848 
5849     /**
5850      * @brief Defines the event triggered when the <b>ARKUI_NODE_SLIDER</b> component is dragged or clicked.
5851      *
5852      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5853      * {@link ArkUI_NodeComponentEvent}. \n
5854      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
5855      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current slider value. \n
5856      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: state triggered by the event.\n
5857      */
5858     NODE_SLIDER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,
5859 
5860     /**
5861      * @brief Defines the event triggered when the <b>ARKUI_NODE_RADIO</b> component is dragged or clicked.
5862      *
5863      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5864      * {@link ArkUI_NodeComponentEvent}. \n
5865      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
5866      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: status of the radio button. \n
5867      */
5868     NODE_RADIO_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
5869 
5870     /**
5871      * @brief Defines the event triggered when the index of the currently displayed element of this
5872      * <b>ARKUI_NODE_SWIPER</b> instance changes.
5873      *
5874      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5875      * {@link ArkUI_NodeComponentEvent}. \n
5876      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
5877      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
5878      */
5879     NODE_SWIPER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
5880 
5881     /**
5882      * @brief Defines the event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance starts.
5883      *
5884      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5885      * {@link ArkUI_NodeComponentEvent}. \n
5886      * {@link ArkUI_NodeComponentEvent} contains five parameters: \n
5887      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
5888      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the target element to switch to. \n
5889      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: offset of the currently displayed element relative to the
5890      * start position of the swiper along the main axis. \n
5891      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: offset of the target element relative to the start position
5892      * of the swiper along the main axis. \n
5893      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: hands-off velocity. \n
5894      */
5895     NODE_SWIPER_EVENT_ON_ANIMATION_START,
5896 
5897     /**
5898      * @brief Defines the event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance ends.
5899      *
5900      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5901      * {@link ArkUI_NodeComponentEvent}. \n
5902      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
5903      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
5904      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
5905      * start position of the swiper along the main axis. \n
5906      */
5907     NODE_SWIPER_EVENT_ON_ANIMATION_END,
5908 
5909     /**
5910      * @brief Defines the event triggered on a frame-by-frame basis when the page is turned by a swipe in this
5911      * <b>ARKUI_NODE_SWIPER</b> instance.
5912      *
5913      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5914      * {@link ArkUI_NodeComponentEvent}. \n
5915      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
5916      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
5917      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
5918      * start position of the swiper along the main axis. \n
5919      */
5920     NODE_SWIPER_EVENT_ON_GESTURE_SWIPE,
5921 
5922     /**
5923      * @brief Defines the event triggered when content in the swiper component scrolls.
5924      * Instructions: \n
5925      * 1. This API does not work when {@link ArkUI_SwiperDisplayModeType} is set to
5926      * <b>ARKUI_SWIPER_DISPLAY_MODE_AUTO_LINEAR</b>. \n
5927      * 2. This API does not work when <b>prevMargin</b> and <b>nextMargin</b> are set in such a way that the
5928      * swiper frontend and backend display the same page during loop playback. \n
5929      * 3. During page scrolling, the </b>ContentDidScrollCallback</b> callback is invoked for all pages in the viewport
5930      * on a frame-by-frame basis. \n
5931      * For example, when there are two pages whose subscripts are 0 and 1 in the viewport, two callbacks whose indexes
5932      * are 0 and 1 are invoked in each frame. \n
5933      * 4. When the </b>swipeByGroup</b> parameter of the </b>displayCount</b> attribute is set to </b>true</b>,
5934      * the callback is invoked for all pages in a group if any page in the group is within the viewport. \n \n
5935      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5936      * {@link ArkUI_NodeComponentEvent}. \n
5937      * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
5938      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the swiper component, which is the same as the index in the
5939      * <b>onChange</b> event. \n
5940      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of a page in the viewport. \n
5941      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: position of the page relative to the start position of the swiper
5942      * main axis (start position of the page corresponding to <b>selectedIndex</b>). \n
5943      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: length of the page in the main axis direction. \n
5944      */
5945     NODE_SWIPER_EVENT_ON_CONTENT_DID_SCROLL,
5946 
5947     /**
5948      * @brief Defines the event triggered when the <b>ARKUI_NODE_SCROLL</b> component scrolls.
5949      *
5950      * Notes for triggering the event:\n
5951      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
5952      * settings, such as keyboard and mouse operations. \n
5953      * 2. Scrolling can be initiated by calling the controller API. \n
5954      * 3. The out-of-bounds bounce effect is supported. \n
5955      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5956      * {@link ArkUI_NodeComponentEvent}. \n
5957      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
5958      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: horizontal scrolling offset. \n
5959      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: vertical scrolling offset. \n
5960      */
5961     NODE_SCROLL_EVENT_ON_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
5962     /**
5963      * @brief Defines the event triggered when each frame scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
5964      *
5965      * Notes for triggering the event:\n
5966      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
5967      * settings, such as keyboard and mouse operations. \n
5968      * 2. This event is not triggered when the controller API is called. \n
5969      * 3. This event does not support the out-of-bounds bounce effect. \n
5970      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5971      * {@link ArkUI_NodeComponentEvent}. \n
5972      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
5973      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: amount to scroll by. \n
5974      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scrolling state. \n
5975      * <b>::ArkUI_NodeComponentEvent</b> contains one return value:\n
5976      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The event handler can work out the amount by which the component
5977      * needs to scroll based on the real-world situation and return the result in this parameter. \n
5978      */
5979     NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN,
5980     /**
5981      * @brief Defines the event triggered when the container is about to scroll.
5982      *
5983      * Notes for triggering the event:\n
5984      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
5985      * settings, such as keyboard and mouse operations. \n
5986      * 2. Scrolling can be initiated by calling the controller API. \n
5987      * 3. The out-of-bounds bounce effect is supported. \n
5988      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
5989      * {@link ArkUI_NodeComponentEvent}. \n
5990      * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
5991      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame, in vp. The offset is positive when
5992      * the content is scrolled left and negative when the content is scrolled right. \n
5993      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: scroll offset of each frame, in vp. The offset is positive when
5994      * the content is scrolled up and negative when the content is scrolled down. \n
5995      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: current scroll state.
5996      * The parameter type is {@link ArkUI_ScrollState}. \n
5997      */
5998     NODE_SCROLL_EVENT_ON_WILL_SCROLL,
5999     /**
6000      * @brief Defines the event triggered when the container scrolls.
6001      *
6002      * Notes for triggering the event:\n
6003      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
6004      * settings, such as keyboard and mouse operations. \n
6005      * 2. Scrolling can be initiated by calling the controller API. \n
6006      * 3. The out-of-bounds bounce effect is supported. \n
6007      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6008      * {@link ArkUI_NodeComponentEvent}. \n
6009      * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
6010      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame, in vp. The offset is positive when the
6011      * content is scrolled left and negative when the content is scrolled right. \n
6012      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: scroll offset of each frame, in vp. The offset is positive when the
6013      * content is scrolled up and negative when the content is scrolled down. \n
6014      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: current scroll state. The parameter type is
6015      * {@link ArkUI_ScrollState}. \n
6016      */
6017     NODE_SCROLL_EVENT_ON_DID_SCROLL,
6018     /**
6019      * @brief Defines the event triggered when the container starts scrolling.
6020      *
6021      * Notes for triggering the event:\n
6022      * 1. This event is triggered when scrolling is started, with support for other input settings, such as keyboard
6023      * and mouse operations. \n
6024      * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
6025      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6026      * {@link ArkUI_NodeComponentEvent}. \n
6027      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
6028      */
6029     NODE_SCROLL_EVENT_ON_SCROLL_START,
6030     /**
6031      * @brief Defines the event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component stops.
6032      *
6033      * Notes for triggering the event:\n
6034      * 1. This event is triggered when scrolling is stopped by the <b>ARKUI_NODE_SCROLL</b> component or other input
6035      * settings, such as keyboard and mouse operations. \n
6036      * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
6037      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6038      * {@link ArkUI_NodeComponentEvent}. \n
6039      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
6040      */
6041     NODE_SCROLL_EVENT_ON_SCROLL_STOP,
6042     /**
6043      * @brief Defines the event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component reaches
6044      * one of the edges.
6045      *
6046      * Notes for triggering the event:\n
6047      * 1. This event is triggered when scrolling reaches the edge after being started by the <b>ARKUI_NODE_SCROLL</b>
6048      * component or other input settings, such as keyboard and mouse operations. \n
6049      * 2. Scrolling can be initiated by calling the controller API. \n
6050      * 3. The out-of-bounds bounce effect is supported. \n
6051      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6052      * {@link ArkUI_NodeComponentEvent}. \n
6053      * {@link ArkUI_NodeComponentEvent} contains one parameter. \n
6054      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edge (top, bottom, left, or right) that the scrolling reaches. \n
6055      */
6056     NODE_SCROLL_EVENT_ON_SCROLL_EDGE,
6057     /**
6058      * @brief Define that a callback is triggered
6059      * when the scrolling container component reaches the start position.
6060      * Condition for triggering the event: \n
6061      * Triggered when the component reaches the start position. \n
6062      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
6063      * {@Link ArkUI_NodeComponentEvent}. \n
6064      * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
6065      */
6066     NODE_SCROLL_EVENT_ON_REACH_START,
6067     /**
6068      * @brief Define that a callback is triggered when the scrolling container component ends. \n
6069      * Condition for triggering the event: \n
6070      * Triggered when the component reaches the end. \n
6071      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
6072      * {@Link ArkUI_NodeComponentEvent}. \n
6073      * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
6074      */
6075     NODE_SCROLL_EVENT_ON_REACH_END,
6076 
6077     /**
6078      * @brief Defines the event triggered when a child component enters or leaves the list display area.
6079      *
6080      * Notes for triggering the event:\n
6081      * This event is triggered once when the list is initialized and when the index of the first child component or the
6082      * next child component in the list display area changes. \n
6083      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6084      * {@link ArkUI_NodeComponentEvent}. \n
6085      * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
6086      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the list display area. \n
6087      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the last child component in the list display area. \n
6088      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the center child component in the list display area. \n
6089      */
6090     NODE_LIST_ON_SCROLL_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
6091     /**
6092      * @brief Defines the event triggered when the list is about to scroll.
6093      *
6094      * Notes for triggering the event:\n
6095      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
6096      * settings, such as keyboard and mouse operations. \n
6097      * 2. Scrolling can be initiated by calling the controller API. \n
6098      * 3. The out-of-bounds bounce effect is supported. \n
6099      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6100      * {@link ArkUI_NodeComponentEvent}. \n
6101      * {@link ArkUI_NodeComponentEvent} contains two parameters: \n
6102      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame. The offset is positive when the list
6103      * is scrolled up and negative when the list is scrolled down. \n
6104      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
6105      */
6106     NODE_LIST_ON_WILL_SCROLL,
6107     /**
6108      * @brief Defines the event triggered when the list scrolls.
6109      *
6110      * Notes for triggering the event:\n
6111      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
6112      * settings, such as keyboard and mouse operations. \n
6113      * 2. Scrolling can be initiated by calling the controller API. \n
6114      * 3. The out-of-bounds bounce effect is supported. \n
6115      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6116      * {@link ArkUI_NodeComponentEvent}. \n
6117      * {@link ArkUI_NodeComponentEvent} contains two parameters: \n
6118      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame. The offset is positive when the list
6119      * is scrolled up and negative when the list is scrolled down. \n
6120      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
6121      */
6122     NODE_LIST_ON_DID_SCROLL,
6123     /**
6124      * @brief Defines the event triggered when the refresh state of the <b>ARKUI_NODE_REFRESH</b> object changes.
6125      *
6126      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6127      * {@link ArkUI_NodeComponentEvent}. \n
6128      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6129      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: refresh state. \n
6130      */
6131     NODE_REFRESH_STATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
6132     /**
6133      * @brief Defines the event triggered when the <b>ARKUI_NODE_REFRESH</b> object enters the refresh state.
6134      *
6135      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6136      * {@link ArkUI_NodeComponentEvent}. \n
6137      * {@link ArkUI_NodeComponentEvent} does not contain parameters:\n
6138      */
6139     NODE_REFRESH_ON_REFRESH,
6140     /**
6141      * @brief Defines the event triggered when the pull-down distance of <b>ARKUI_NODE_REFRESH</b> changes.
6142      *
6143      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6144      * {@link ArkUI_NodeComponentEvent}. \n
6145      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6146      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: pull-down distance. \n
6147      */
6148     NODE_REFRESH_ON_OFFSET_CHANGE = 1009002,
6149 
6150     /**
6151      * @brief Defines the event triggered when the <b>ARKUI_NODE_SCROLL</b> component is about to scroll.
6152      *
6153      * Notes for triggering the event:\n
6154      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other
6155      * input settings, such as keyboard and mouse operations. \n
6156      * 2. Scrolling can be initiated by calling the controller API. \n
6157      * 3. The out-of-bounds bounce effect is supported. \n
6158      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6159      * {@link ArkUI_NodeComponentEvent}. \n
6160      * {@link ArkUI_NodeComponentEvent} contains two parameters: \n
6161      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame. The offset is positive when the
6162      * component is scrolled up and negative when the component is scrolled down. \n
6163      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
6164      */
6165     NODE_ON_WILL_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
6166     /**
6167      * @brief Defines the event triggered when the water flow container scrolls.
6168      *
6169      * Notes for triggering the event:\n
6170      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
6171      * settings, such as keyboard and mouse operations. \n
6172      * 2. Scrolling can be initiated by calling the controller API. \n
6173      * 3. The out-of-bounds bounce effect is supported. \n
6174      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6175      * {@link ArkUI_NodeComponentEvent}. \n
6176      * {@link ArkUI_NodeComponentEvent} contains two parameters: \n
6177      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame. The offset is positive when the
6178      * content is scrolled up and negative when the content is scrolled down. \n
6179      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
6180      */
6181     NODE_WATER_FLOW_ON_DID_SCROLL,
6182     /**
6183      * @brief Defines the enumerated values of the event triggered,
6184      * when the subcomponent of the start position or end position displayed in the current waterfall changes.
6185      * Condition for triggering the event: \n
6186      * This event is triggered when the index value of the first or last subcomponent \n
6187      * in the waterfall display area changes. \n
6188      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
6189      * {@Link ArkUI_NodeComponentEvent}. \n
6190      * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
6191      * ArkUI_NodeComponentEvent.data[0].i32: The index value of \n
6192      * the start position of the currently displayed WaterFlow. \n
6193      * ArkUI_NodeComponentEvent.data[1].i32: The index value of \n
6194      * the end position of the currently displayed waterfall. \n
6195      */
6196     NODE_WATER_FLOW_ON_SCROLL_INDEX,
6197 
6198     /**
6199      * @brief 定义帧动画开始的状态回调。
6200      *
6201      * 触发该事件的条件:\n
6202      * 1、帧动画开始播放时。\n
6203      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
6204      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
6205      *
6206     */
6207     NODE_IMAGE_ANIMATOR_EVENT_ON_START = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_ANIMATOR,
6208     /**
6209      * @brief 定义帧动画播放暂停时的状态回调。
6210      *
6211      * 触发该事件的条件:\n
6212      * 1、帧动画暂停播放时。\n
6213      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
6214      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
6215      *
6216     */
6217     NODE_IMAGE_ANIMATOR_EVENT_ON_PAUSE = 19001,
6218     /**
6219      * @brief 定义帧动画c重复播放时的状态回调。
6220      *
6221      * 触发该事件的条件:\n
6222      * 1、帧动画重复播放时。\n
6223      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
6224      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
6225      *
6226     */
6227     NODE_IMAGE_ANIMATOR_EVENT_ON_REPEAT = 19002,
6228     /**
6229      * @brief 定义帧动画返回最初状态时的状态回调。
6230      *
6231      * 触发该事件的条件:\n
6232      * 1、帧动画返回最初状态时。\n
6233      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
6234      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
6235      *
6236     */
6237     NODE_IMAGE_ANIMATOR_EVENT_ON_CANCEL = 19003,
6238     /**
6239      * @brief 定义帧动画播放完成时或者停止播放时的状态回调。
6240      *
6241      * 触发该事件的条件:\n
6242      * 1、帧动画播放完成时或停止播放时。\n
6243      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
6244      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
6245      *
6246     */
6247     NODE_IMAGE_ANIMATOR_EVENT_ON_FINISH = 19004,
6248 } ArkUI_NodeEventType;
6249 
6250 /**
6251  * @brief Defines the common structure type of a component event.
6252  *
6253  * @since 12
6254  */
6255 typedef struct ArkUI_NodeEvent ArkUI_NodeEvent;
6256 
6257 /**
6258  * @brief Obtains the type of a component event.
6259  *
6260  * @param event Indicates the pointer to the component event.
6261  * @return Returns the type of the component event.
6262  * @since 12
6263  */
6264 ArkUI_NodeEventType OH_ArkUI_NodeEvent_GetEventType(ArkUI_NodeEvent* event);
6265 
6266 /**
6267  * @brief Obtains the custom ID of a component event.
6268  *
6269  * The event ID is passed in as a parameter when the {@link registerNodeEvent} function is called and can be applied
6270  * to the dispatch logic of the same event entry function {@link registerNodeEventReceiver}.
6271  *
6272  * @param event Indicates the pointer to the component event.
6273  * @return Returns the custom ID of the component event.
6274  * @since 12
6275  */
6276 int32_t OH_ArkUI_NodeEvent_GetTargetId(ArkUI_NodeEvent* event);
6277 
6278 /**
6279  * @brief Obtains the component object that triggers a component event.
6280  *
6281  * @param event Indicates the pointer to the component event.
6282  * @return Returns the component object that triggers the component event.
6283  * @since 12
6284  */
6285 ArkUI_NodeHandle OH_ArkUI_NodeEvent_GetNodeHandle(ArkUI_NodeEvent* event);
6286 
6287 /**
6288  * @brief Obtains input event (for example, touch event) data for a component event.
6289  *
6290  * @param event Indicates the pointer to the component event.
6291  * @return Returns the pointer to the input event data.
6292  * @since 12
6293  */
6294 ArkUI_UIInputEvent* OH_ArkUI_NodeEvent_GetInputEvent(ArkUI_NodeEvent* event);
6295 
6296 /**
6297  * @brief Obtains the numerical data in a component event.
6298  *
6299  * @param event Indicates the pointer to the component event.
6300  * @return Returns the pointer to the numerical data.
6301  * @since 12
6302  */
6303 ArkUI_NodeComponentEvent* OH_ArkUI_NodeEvent_GetNodeComponentEvent(ArkUI_NodeEvent* event);
6304 
6305 /**
6306  * @brief Obtains the string data in a component event.
6307  *
6308  * @param event Indicates the pointer to the component event.
6309  * @return Returns the pointer to the string data.
6310  * @since 12
6311  */
6312 ArkUI_StringAsyncEvent* OH_ArkUI_NodeEvent_GetStringAsyncEvent(ArkUI_NodeEvent* event);
6313 
6314 /**
6315  * @brief Obtains the custom data in a component event.
6316  *
6317  * This parameter is passed in {@link registerNodeEvent} and can be applied to the service logic when the event
6318  * is triggered.
6319  *
6320  * @param event Indicates the pointer to the component event.
6321  * @return Returns the pointer to the custom data.
6322  * @since 12
6323  */
6324 void* OH_ArkUI_NodeEvent_GetUserData(ArkUI_NodeEvent* event);
6325 
6326 /**
6327  * @brief 获取组件回调事件的数字类型参数。
6328  *
6329  * @param event 组件事件指针。
6330  * @param index 返回值索引。
6331  * @param value 具体返回值。
6332  * @return 错误码。
6333  *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
6334  *         {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} 组件事件中参数长度超限。
6335  *         {@link ARKUI_ERROR_CODE_NODE_EVENT_NO_RETURN} 组件事件不支持返回值。
6336  * @since 12
6337  */
6338 int32_t OH_ArkUI_NodeEvent_GetNumberValue(ArkUI_NodeEvent* event, int32_t index, ArkUI_NumberValue* value);
6339 
6340     /**
6341  * @brief 获取组件回调事件的字符串类型参数,字符串数据仅在事件回调过程中有效,需要在事件回调外使用建议进行额外拷贝处理。
6342  *
6343  * @param event 组件事件指针。
6344  * @param index 返回值索引。
6345  * @param string 字符串数组的指针。
6346  * @param stringSize 字符串数组的长度。
6347  * @return 错误码。
6348  *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
6349  *         {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} 组件事件中参数长度超限。
6350  *         {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} 组件事件中不存在该数据。
6351  * @since 12
6352  */
6353 int32_t OH_ArkUI_NodeEvent_GetStringValue(ArkUI_NodeEvent* event, int32_t index, char** string, int32_t* stringSize);
6354 
6355 /**
6356     * @brief 设置组件回调事件的返回值。
6357     *
6358     * @param event 组件事件指针。
6359     * @param value 事件数字类型数组。
6360     * @param size 数组长度。
6361     * @return 错误码。
6362     *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
6363     *         {@link ARKUI_ERROR_CODE_NODE_EVENT_NO_RETURN} 组件事件不支持返回值。
6364     * @since 12
6365     */
6366 int32_t OH_ArkUI_NodeEvent_SetReturnNumberValue(ArkUI_NodeEvent* event, ArkUI_NumberValue* value, int32_t size);
6367 
6368 /**
6369     * @brief Defines the dirty area flag passed in the <b>::markDirty</b> API.
6370     *
6371     * @since 12
6372     */
6373 typedef enum {
6374     /**
6375      * @brief Remeasure.
6376      *
6377      * When this type of flag is specified, re-layout is triggered by default.
6378      */
6379     NODE_NEED_MEASURE = 1,
6380 
6381     /** Re-layout. */
6382     NODE_NEED_LAYOUT,
6383     /** Re-rendering. */
6384     NODE_NEED_RENDER,
6385 } ArkUI_NodeDirtyFlag;
6386 
6387 /**
6388  * @brief Defines the custom component event type.
6389  *
6390  * @since 12
6391  */
6392 typedef enum {
6393     /** Measure type. */
6394     ARKUI_NODE_CUSTOM_EVENT_ON_MEASURE = 1 << 0,
6395     /** Layout type. */
6396     ARKUI_NODE_CUSTOM_EVENT_ON_LAYOUT = 1 << 1,
6397     /** Draw type. */
6398     ARKUI_NODE_CUSTOM_EVENT_ON_DRAW = 1 << 2,
6399     /** Foreground type. */
6400     ARKUI_NODE_CUSTOM_EVENT_ON_FOREGROUND_DRAW = 1 << 3,
6401     /** Overlay type. */
6402     ARKUI_NODE_CUSTOM_EVENT_ON_OVERLAY_DRAW = 1 << 4,
6403 } ArkUI_NodeCustomEventType;
6404 
6405 /**
6406  * @brief Defines the general structure of a custom component event.
6407  *
6408  * @since 12
6409  */
6410 typedef struct ArkUI_NodeCustomEvent ArkUI_NodeCustomEvent;
6411 
6412 /**
6413  * @brief Defines the component adapter, which is used for lazy loading of elements of scrollable components.
6414  *
6415  * @since 12
6416  */
6417 typedef struct ArkUI_NodeAdapter* ArkUI_NodeAdapterHandle;
6418 
6419 /**
6420  * @brief Defines the component adapter event.
6421  *
6422  * @since 12
6423  */
6424 typedef struct ArkUI_NodeAdapterEvent ArkUI_NodeAdapterEvent;
6425 
6426 /**
6427  * @brief Enumerates component adapter events.
6428  *
6429  * @since 12
6430  */
6431 typedef enum {
6432     /** This event occurs when the component is attached to the adapter. */
6433     NODE_ADAPTER_EVENT_WILL_ATTACH_TO_NODE = 1,
6434     /** This event occurs when the component is detached from the adapter. */
6435     NODE_ADAPTER_EVENT_WILL_DETACH_FROM_NODE = 2,
6436     /** This event occurs when the adapter obtains the unique ID of the new element to add. */
6437     NODE_ADAPTER_EVENT_ON_GET_NODE_ID = 3,
6438     /** This event occurs when the adapter obtains the content of the new element to add. */
6439     NODE_ADAPTER_EVENT_ON_ADD_NODE_TO_ADAPTER = 4,
6440     /** This event occurs when the adapter removes an element. */
6441     NODE_ADAPTER_EVENT_ON_REMOVE_NODE_FROM_ADAPTER = 5,
6442 } ArkUI_NodeAdapterEventType;
6443 
6444 /**
6445 * @brief Creates a component adapter.
6446 *
6447 * @since 12
6448 */
6449 ArkUI_NodeAdapterHandle OH_ArkUI_NodeAdapter_Create(void);
6450 
6451 /**
6452 * @brief Destroys a component adapter.
6453 *
6454 * @param handle Indicates the target component adapter.
6455 * @since 12
6456 */
6457 void OH_ArkUI_NodeAdapter_Dispose(ArkUI_NodeAdapterHandle handle);
6458 
6459 /**
6460 * @brief Sets the total number of elements in the specified adapter.
6461 *
6462 * @param handle Indicates the target component adapter.
6463 * @param size Indicates the number of elements.
6464 * @return Returns the error code.
6465 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6466 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6467 * @since 12
6468 */
6469 int32_t OH_ArkUI_NodeAdapter_SetTotalNodeCount(ArkUI_NodeAdapterHandle handle, uint32_t size);
6470 
6471 /**
6472 * @brief Obtains the total number of elements in the specified adapter.
6473 *
6474 * @param handle Indicates the target component adapter.
6475 * @return Returns the total number of elements in the adapter.
6476 * @since 12
6477 */
6478 uint32_t OH_ArkUI_NodeAdapter_GetTotalNodeCount(ArkUI_NodeAdapterHandle handle);
6479 
6480 /**
6481 * @brief Registers an event callback for the adapter.
6482 *
6483 * @param handle Indicates the target component adapter.
6484 * @param userData Indicates custom data.
6485 * @param receiver Indicates the event receiver callback.
6486 * @return Returns the error code.
6487 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6488 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6489 * @since 12
6490 */
6491 int32_t OH_ArkUI_NodeAdapter_RegisterEventReceiver(
6492     ArkUI_NodeAdapterHandle handle, void* userData, void (*receiver)(ArkUI_NodeAdapterEvent* event));
6493 
6494 /**
6495 * @brief Deregisters an event callback for the adapter.
6496 *
6497 * @param handle Indicates the target component adapter.
6498 * @since 12
6499 */
6500 void OH_ArkUI_NodeAdapter_UnregisterEventReceiver(ArkUI_NodeAdapterHandle handle);
6501 
6502 /**
6503 * @brief Instructs the specified adapter to reload all elements.
6504 *
6505 * @param handle Indicates the target component adapter.
6506 * @return Returns the error code.
6507 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6508 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6509 * @since 12
6510 */
6511 int32_t OH_ArkUI_NodeAdapter_ReloadAllItems(ArkUI_NodeAdapterHandle handle);
6512 
6513 /**
6514 * @brief Instructs the specified adapter to reload certain elements.
6515 *
6516 * @param handle Indicates the target component adapter.
6517 * @param startPosition Indicates the start position of the elements to reload.
6518 * @param itemCount Indicates the number of the elements to reload.
6519 * @return Returns the error code.
6520 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6521 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6522 * @since 12
6523 */
6524 int32_t OH_ArkUI_NodeAdapter_ReloadItem(ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
6525 
6526 /**
6527 * @brief Instructs the specified adapter to remove certain elements.
6528 *
6529 * @param handle Indicates the target component adapter.
6530 * @param startPosition Indicates the start position of the elements to remove.
6531 * @param itemCount Indicates the number of the elements to remove.
6532 * @return Returns the error code.
6533 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6534 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6535 * @since 12
6536 */
6537 int32_t OH_ArkUI_NodeAdapter_RemoveItem(ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
6538 
6539 /**
6540 * @brief Instructs the specified adapter to insert certain elements.
6541 *
6542 * @param handle Indicates the target component adapter.
6543 * @param startPosition Indicates the start position of the elements to insert.
6544 * @param itemCount Indicates the number of the elements to insert.
6545 * @return Returns the error code.
6546 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6547 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6548 * @since 12
6549 */
6550 int32_t OH_ArkUI_NodeAdapter_InsertItem(ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
6551 
6552 /**
6553 * @brief Instructs the specified adapter to move certain elements.
6554 *
6555 * @param handle Indicates the target component adapter.
6556 * @param from Indicates the start position of the elements to move.
6557 * @param to Indicates the end position of the elements to move.
6558 * @return Returns the error code.
6559 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6560 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6561 * @since 12
6562 */
6563 int32_t OH_ArkUI_NodeAdapter_MoveItem(ArkUI_NodeAdapterHandle handle, uint32_t from, uint32_t to);
6564 
6565 /**
6566 * @brief Obtains all elements stored in the specified adapter.
6567 *
6568 * This API returns the pointer to the array of the elements. You need to manually release the memory data
6569 * to which the pointer points.
6570 *
6571 * @param handle Indicates the target component adapter.
6572 * @param items Indicates the pointer to the array of the elements in the adapter.
6573 * @param size Indicates the number of elements.
6574 * @return Returns the error code.
6575 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6576 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6577 * @since 12
6578 */
6579 int32_t OH_ArkUI_NodeAdapter_GetAllItems(ArkUI_NodeAdapterHandle handle, ArkUI_NodeHandle** items, uint32_t* size);
6580 
6581 /**
6582 * @brief Obtains the custom data passed in during registration of the specified event.
6583 *
6584 * @param event Indicates the target adapter event.
6585 * @since 12
6586 */
6587 void* OH_ArkUI_NodeAdapterEvent_GetUserData(ArkUI_NodeAdapterEvent* event);
6588 
6589 /**
6590 * @brief Obtains the event type.
6591 *
6592 * @param event Indicates the target adapter event.
6593 * @return Returns the event type.
6594 * @since 12
6595 */
6596 ArkUI_NodeAdapterEventType OH_ArkUI_NodeAdapterEvent_GetType(ArkUI_NodeAdapterEvent* event);
6597 
6598 /**
6599 * @brief Obtains the element to be removed for the event to be destroyed.
6600 *
6601 * @param event Indicates the target adapter event.
6602 * @return Returns the element to be removed.
6603 * @since 12
6604 */
6605 ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetRemovedNode(ArkUI_NodeAdapterEvent* event);
6606 
6607 /**
6608 * @brief Obtains the index of the element to be operated for the specified adapter event.
6609 *
6610 * @param event Indicates the target adapter event.
6611 * @return Returns the index of the element.
6612 * @since 12
6613 */
6614 uint32_t OH_ArkUI_NodeAdapterEvent_GetItemIndex(ArkUI_NodeAdapterEvent* event);
6615 
6616 /**
6617 * @brief Obtains the scrollable container node that uses the specified adapter.
6618 *
6619 * @param event Indicates the target adapter event.
6620 * @return Returns the error code.
6621 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6622 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6623 * @since 12
6624 */
6625 ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetHostNode(ArkUI_NodeAdapterEvent* event);
6626 
6627 /**
6628 * @brief Sets the component to be added to the specified adapter.
6629 *
6630 * @param event Indicates the target adapter event.
6631 * @param node Indicates the component to be added.
6632 * @return Returns the error code.
6633 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6634 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6635 * @since 12
6636 */
6637 int32_t OH_ArkUI_NodeAdapterEvent_SetItem(ArkUI_NodeAdapterEvent* event, ArkUI_NodeHandle node);
6638 
6639 /**
6640 * @brief Sets the component ID to be generated.
6641 *
6642 * @param event Indicates the target adapter event.
6643 * @param id Indicates the component ID to set.
6644 * @return Returns the error code.
6645 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6646 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6647 * @since 12
6648 */
6649 int32_t OH_ArkUI_NodeAdapterEvent_SetNodeId(ArkUI_NodeAdapterEvent* event, int32_t id);
6650 
6651 /**
6652  * @brief Declares a collection of native node APIs provided by ArkUI.
6653  *
6654  * The APIs related to the native node must be called in the main thread.
6655  *
6656  * @version 1
6657  * @since 12
6658  */
6659 typedef struct {
6660     /** Struct version. */
6661     int32_t version;
6662 
6663     /**
6664      * @brief Creates a component based on {@link ArkUI_NodeType} and returns the pointer to the created component.
6665      *
6666      * @param type Indicates the type of component to create.
6667      * @return Returns the pointer to the created component. If the component fails to be created, NULL is returned.
6668      */
6669     ArkUI_NodeHandle (*createNode)(ArkUI_NodeType type);
6670 
6671     /**
6672      * @brief Destroys the component to which the specified pointer points.
6673      *
6674      * @param node Indicates the pointer.
6675      */
6676     void (*disposeNode)(ArkUI_NodeHandle node);
6677 
6678     /**
6679      * @brief Adds a component to a parent node.
6680      *
6681      * @param parent Indicates the pointer to the parent node.
6682      * @param child Indicates the pointer to the child node.
6683      * @return Returns the error code.
6684      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6685      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6686      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
6687      * on BuilderNode generated nodes:
6688      *         setting or resetting attributes, setting events, or adding or editing subnodes.
6689      */
6690     int32_t (*addChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);
6691 
6692     /**
6693      * @brief Removes a component from its parent node.
6694      *
6695      * @param parent Indicates the pointer to the parent node.
6696      * @param child Indicates the pointer to the child node.
6697      * @return Returns the error code.
6698      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6699      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6700      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
6701      * on BuilderNode generated nodes:
6702      *         setting or resetting attributes, setting events, or adding or editing subnodes.
6703      */
6704     int32_t (*removeChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);
6705 
6706     /**
6707      * @brief Inserts a component to a parent node after the specified <b>sibling</b> node.
6708      *
6709      * @param parent Indicates the pointer to the parent node.
6710      * @param child Indicates the pointer to the child node.
6711      * @param sibling Indicates the pointer to the sibling node after which the target node is to be inserted.
6712      * If the value is null, the node is inserted at the start of the parent node.
6713      * @return Returns the error code.
6714      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6715      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6716      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
6717      * on BuilderNode generated nodes:
6718      *         setting or resetting attributes, setting events, or adding or editing subnodes.
6719      */
6720     int32_t (*insertChildAfter)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);
6721 
6722     /**
6723      * @brief Inserts a component to a parent node before the specified <b>sibling</b> node.
6724      *
6725      * @param parent Indicates the pointer to the parent node.
6726      * @param child Indicates the pointer to the child node.
6727      * @param sibling Indicates the pointer to the sibling node before which the target node is to be inserted.
6728      * If the value is null, the node is inserted at the end of the parent node.
6729      * @return Returns the error code.
6730      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6731      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6732      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
6733      * on BuilderNode generated nodes:
6734      *         setting or resetting attributes, setting events, or adding or editing subnodes.
6735      */
6736     int32_t (*insertChildBefore)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);
6737 
6738     /**
6739      * @brief Inserts a component to the specified position in a parent node.
6740      *
6741      * @param parent Indicates the pointer to the parent node.
6742      * @param child Indicates the pointer to the child node.
6743      * @param position Indicates the position to which the target child node is to be inserted. If the value is a
6744      * negative number or invalid, the node is inserted at the end of the parent node.
6745      * @return Returns the error code.
6746      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6747      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6748      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
6749      * on BuilderNode generated nodes:
6750      *         setting or resetting attributes, setting events, or adding or editing subnodes.
6751      */
6752     int32_t (*insertChildAt)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, int32_t position);
6753 
6754     /**
6755      * @brief Sets the attribute of a node.
6756      *
6757      * @param node Indicates the node whose attribute needs to be set.
6758      * @param attribute Indicates the type of attribute to set.
6759      * @param item Indicates the attribute value.
6760      * @return Returns the error code.
6761      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6762      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6763      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
6764      *         of the native API was not found.
6765      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
6766      *         on BuilderNode generated nodes:
6767      *         setting or resetting attributes, setting events, or adding or editing subnodes.
6768      */
6769     int32_t (*setAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute, const ArkUI_AttributeItem* item);
6770 
6771     /**
6772      * @brief Obtains an attribute.
6773      *
6774      * The pointer returned by this API is an internal buffer pointer of the ArkUI framework. As such, you do not need
6775      * to call <b>delete</b> to release the memory. However, the pointer must be used before this API is called next
6776      * time. Otherwise, the pointer may be overwritten by other values.
6777      *
6778      * @param node Indicates the node whose attribute needs to be obtained.
6779      * @param attribute Indicates the type of attribute to obtain.
6780      * @return Returns the attribute value. If the operation fails, a null pointer is returned.
6781      */
6782     const ArkUI_AttributeItem* (*getAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
6783 
6784     /**
6785      * @brief Resets an attribute.
6786      *
6787      * @param node Indicates the node whose attribute needs to be reset.
6788      * @param attribute Indicates the type of attribute to reset.
6789      * @return Returns the error code.
6790      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6791      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6792      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
6793      *         of the native API was not found.
6794      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
6795      *         on BuilderNode generated nodes:
6796      *         setting or resetting attributes, setting events, or adding or editing subnodes.
6797      */
6798     int32_t (*resetAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
6799 
6800     /**
6801      * @brief Registers an event for the specified node.
6802      *
6803      * @param node Indicates the target node.
6804      * @param eventType Indicates the type of event to register.
6805      * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeEvent}
6806      * when the event is triggered.
6807      * @param userData Indicates the custom event parameter, which is passed in the callback of {@link ArkUI_NodeEvent}
6808      * when the event is triggered.
6809      * @return Returns the error code.
6810      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6811      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6812      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
6813      *         of the native API was not found.
6814      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
6815      *         on BuilderNode generated nodes:
6816      *         setting or resetting attributes, setting events, or adding or editing subnodes.
6817      */
6818     int32_t (*registerNodeEvent)(
6819         ArkUI_NodeHandle node, ArkUI_NodeEventType eventType, int32_t targetId, void* userData);
6820 
6821     /**
6822      * @brief Unregisters an event for the specified node.
6823      *
6824      * @param node Indicates the target node.
6825      * @param eventType Indicates the type of event to unregister.
6826      */
6827     void (*unregisterNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType);
6828 
6829     /**
6830      * @brief Registers an event receiver.
6831      *
6832      * The ArkUI framework collects component events generated during the process and calls back the events through
6833      * the registered event receiver. \n
6834      * A new call to this API will overwrite the previously registered event receiver. \n
6835      * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer. The data will be destroyed after the callback
6836      * is complete. \n
6837      * To bind with a component instance, you can use the <b>addNodeEventReceiver</b> function. \n
6838      *
6839      * @param eventReceiver Indicates the event receiver to register.
6840      */
6841     void (*registerNodeEventReceiver)(void (*eventReceiver)(ArkUI_NodeEvent* event));
6842 
6843     /**
6844      * @brief Unregisters the event receiver.
6845      *
6846      */
6847     void (*unregisterNodeEventReceiver)();
6848 
6849     /**
6850      * @brief Forcibly marks the current node that needs to be measured, laid out, or rendered again.
6851      *
6852      * Regarding updates to system attributes, the ArkUI framework automatically marks the dirty area and performs
6853      * measuring, layout, or rendering again. In this case, you do not need to call this API.
6854      *
6855      * @param node Indicates the node for which you want to mark as dirty area.
6856      * @param dirtyFlag Indicates type of dirty area.
6857      */
6858     void (*markDirty)(ArkUI_NodeHandle node, ArkUI_NodeDirtyFlag dirtyFlag);
6859 
6860     /**
6861      * @brief Obtains the number of subnodes.
6862      *
6863      * @param node Indicates the target node.
6864      * @return Returns the error code.
6865      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6866      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6867      */
6868     uint32_t (*getTotalChildCount)(ArkUI_NodeHandle node);
6869 
6870     /**
6871      * @brief Obtains a subnode.
6872      *
6873      * @param node Indicates the target node.
6874      * @param position Indicates the position of the subnode.
6875      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
6876      */
6877     ArkUI_NodeHandle (*getChildAt)(ArkUI_NodeHandle node, int32_t position);
6878 
6879     /**
6880      * @brief Obtains the first subnode.
6881      *
6882      * @param node Indicates the target node.
6883      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
6884      */
6885     ArkUI_NodeHandle (*getFirstChild)(ArkUI_NodeHandle node);
6886 
6887     /**
6888      * @brief Obtains the last subnode.
6889      *
6890      * When the component is being displayed, this API must be called in the main thread.
6891      *
6892      * @param node Indicates the target node.
6893      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
6894      */
6895     ArkUI_NodeHandle (*getLastChild)(ArkUI_NodeHandle node);
6896 
6897     /**
6898      * @brief Obtains the previous sibling node.
6899      *
6900      * @param node Indicates the target node.
6901      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
6902      */
6903     ArkUI_NodeHandle (*getPreviousSibling)(ArkUI_NodeHandle node);
6904 
6905     /**
6906      * @brief Obtains the next sibling node.
6907      *
6908      * @param node Indicates the target node.
6909      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
6910      */
6911     ArkUI_NodeHandle (*getNextSibling)(ArkUI_NodeHandle node);
6912 
6913     /**
6914      * @brief Registers a custom event for a node. When the event is triggered, the value is returned through the entry
6915      * point function registered by <b>registerNodeCustomEventReceiver</b>.
6916      *
6917      * @param node Indicates the target node.
6918      * @param eventType Indicates the type of event to register.
6919      * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeCustomEvent}
6920      * when the event is triggered.
6921      * @param userData Indicates the custom event parameter, which is passed in the callback of
6922      * {@link ArkUI_NodeCustomEvent} when the event is triggered.
6923      * @return Returns the error code.
6924      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6925      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6926      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
6927      *         of the native API was not found.
6928      */
6929     int32_t (*registerNodeCustomEvent)(
6930         ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType, int32_t targetId, void* userData);
6931 
6932     /**
6933      * @brief Unregisters a custom event for a node.
6934      *
6935      * @param node Indicates the target node.
6936      * @param eventType Indicates the type of event to unregister.
6937      */
6938     void (*unregisterNodeCustomEvent)(ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType);
6939 
6940     /**
6941      * @brief Registers a unified entry point function for custom node event callbacks.
6942      *
6943      * The ArkUI framework collects custom component events generated during the process and calls back the events
6944      * through the registered <b>registerNodeCustomEventReceiver</b>. \n
6945      * A new call to this API will overwrite the previously registered event receiver.
6946      * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
6947      * The data will be destroyed after the callback is complete. \n
6948      * To bind with a component instance, you can use the <b>addNodeCustomEventReceiver</b> function. \n
6949      *
6950      * @param eventReceiver Indicates the event receiver to register.
6951      */
6952     void (*registerNodeCustomEventReceiver)(void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
6953 
6954     /**
6955      * @brief Unregisters the unified entry point function for custom node event callbacks.
6956      *
6957      */
6958     void (*unregisterNodeCustomEventReceiver)();
6959 
6960     /**
6961      * @brief Sets the width and height for a component after the measurement.
6962      *
6963      * @param node Indicates the target node.
6964      * @param width Indicates the width.
6965      * @param height Indicates the height.
6966      * @return Returns the error code.
6967      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6968      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6969      */
6970     int32_t (*setMeasuredSize)(ArkUI_NodeHandle node, int32_t width, int32_t height);
6971 
6972     /**
6973      * @brief Sets the position for a component.
6974      *
6975      * @param node Indicates the target node.
6976      * @param positionX Indicates the X coordinate.
6977      * @param positionY Indicates the Y coordinate.
6978      * @return Returns the error code.
6979      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
6980      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
6981      */
6982     int32_t (*setLayoutPosition)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);
6983 
6984     /**
6985      * @brief Obtains the width and height of a component after measurement.
6986      *
6987      * @param node Indicates the target node.
6988      * @return Returns the width and height of the component.
6989      */
6990     ArkUI_IntSize (*getMeasuredSize)(ArkUI_NodeHandle node);
6991 
6992     /**
6993      * @brief Obtains the position of a component after the layout is complete.
6994      *
6995      * @param node Indicates the target node.
6996      * @return Returns the position of the component.
6997      */
6998     ArkUI_IntOffset (*getLayoutPosition)(ArkUI_NodeHandle node);
6999 
7000     /**
7001      * @brief Measures a node. You can use the <b>getMeasuredSize</b> API to obtain the size after the measurement.
7002      *
7003      * @param node Indicates the target node.
7004      * @param Constraint Indicates the size constraint.
7005      * @return Returns the error code.
7006      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7007      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7008      */
7009     int32_t (*measureNode)(ArkUI_NodeHandle node, ArkUI_LayoutConstraint* Constraint);
7010 
7011     /**
7012      * @brief Lays outs a component and passes the expected position of the component relative to its parent component.
7013      *
7014      * @param node Indicates the target node.
7015      * @param positionX Indicates the X coordinate.
7016      * @param positionY Indicates the Y coordinate.
7017      * @return Returns the error code.
7018      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7019      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7020      */
7021     int32_t (*layoutNode)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);
7022 
7023     /**
7024      * @brief Adds a component event callback function to a component to receive component events generated
7025      * by the component.
7026      *
7027      * Unlike the global registration function <b>registerNodeEventReceiver</b>, this API allows multiple event
7028      * receivers to be added to the same component. \n
7029      * The callback added by this API is triggered before the global callback registered by
7030      * <b>registerNodeEventReceiver</b>. \n
7031      * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer.
7032      * The data will be destroyed after the callback is complete. \n
7033      *
7034      * @param node Indicates the component for which you want to add the event callback function.
7035      * @param eventReceiver Indicates the component event callback function to add.
7036      * @return Returns the error code.
7037      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7038      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7039      */
7040     int32_t (*addNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));
7041 
7042     /**
7043      * @brief Removes the registered component event callback function from a component.
7044      *
7045      * @param node Indicates the component from which you want to remove the event callback function.
7046      * @param eventReceiver Indicates the component event callback function to remove.
7047      * @return Returns the error code.
7048      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7049      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7050      */
7051     int32_t (*removeNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));
7052 
7053     /**
7054      * @brief Adds a custom event callback function to a component to receive custom events
7055      * (such as layout and drawing events) generated by the component.
7056      *
7057      * Unlike the global registration function <b>registerNodeCustomEventReceiver</b>, this API allows
7058      * multiple event receivers to be added to the same component. \n
7059      * The callback added by this API is triggered before the global callback registered by
7060      * <b>registerNodeCustomEventReceiver</b>. \n
7061      * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
7062      * The data will be destroyed after the callback is complete. \n
7063      *
7064      * @param node Indicates the component for which you want to add the custom event callback function.
7065      * @param eventReceiver Indicates the custom event callback function to add.
7066      * @return Returns the error code.
7067      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7068      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7069      */
7070     int32_t (*addNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
7071 
7072     /**
7073      * @brief Removes a registered custom event callback function from a component.
7074      *
7075      * @param node Indicates the component from which you want to remove the custom event callback function.
7076      * @param eventReceiver Indicates the custom event callback function to remove.
7077      * @return Returns the error code.
7078      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7079      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7080      */
7081     int32_t (*removeNodeCustomEventReceiver)(
7082         ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
7083 
7084     /**
7085      * @brief Saves custom data on the specified component.
7086      *
7087      * @param node Indicates the component on which the custom data will be saved.
7088      * @param userData Indicates the custom data to be saved.
7089      * @return Returns the error code.
7090      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7091      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7092      */
7093     int32_t (*setUserData)(ArkUI_NodeHandle node, void* userData);
7094 
7095     /**
7096      * @brief Obtains the custom data saved on the specified component.
7097      *
7098      * @param node Indicates the target component.
7099      * @return Returns the custom data.
7100      */
7101     void* (*getUserData)(ArkUI_NodeHandle node);
7102 
7103     /**
7104      * @brief Sets the unit for a component.
7105      *
7106      * @param node Indicates the component for which you want to set the unit.
7107      * @param unit Indicates the unit, which is an enumerated value of {@link ArkUI_LengthMetricUnit}.
7108      * @return Returns the error code.
7109      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7110      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7111      */
7112     int32_t (*setLengthMetricUnit)(ArkUI_NodeHandle node, ArkUI_LengthMetricUnit unit);
7113 
7114     /**
7115      * @brief Obtains the parent node.
7116      *
7117      * @param node Indicates the target node.
7118      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
7119      */
7120     ArkUI_NodeHandle (*getParent)(ArkUI_NodeHandle node);
7121 
7122     /**
7123      * @brief 从父组件上卸载所有子节点。
7124      *
7125      * @param parent 目标节点对象。
7126      * @return 0 - 成功。
7127      *         401 - 函数参数异常。
7128      */
7129     int32_t (*removeAllChildren)(ArkUI_NodeHandle parent);
7130 } ArkUI_NativeNodeAPI_1;
7131 
7132 /**
7133 * @brief Obtains the size constraint for measurement through a custom component event.
7134 *
7135 * @param event Indicates the pointer to the custom component event.
7136 * @return Returns the pointer to the size constraint.
7137 * @since 12
7138 */
7139 ArkUI_LayoutConstraint* OH_ArkUI_NodeCustomEvent_GetLayoutConstraintInMeasure(ArkUI_NodeCustomEvent* event);
7140 
7141 /**
7142 * @brief Obtains the expected position of a component relative to its parent component in the layout phase through a
7143 * custom component event.
7144 *
7145 * @param event Indicates the pointer to the custom component event.
7146 * @return Returns the expected position relative to the parent component.
7147 * @since 12
7148 */
7149 ArkUI_IntOffset OH_ArkUI_NodeCustomEvent_GetPositionInLayout(ArkUI_NodeCustomEvent* event);
7150 
7151 /**
7152 * @brief Obtains the drawing context through a custom component event.
7153 *
7154 * @param event Indicates the pointer to the custom component event.
7155 * @return Returns the drawing context.
7156 * @since 12
7157 */
7158 ArkUI_DrawContext* OH_ArkUI_NodeCustomEvent_GetDrawContextInDraw(ArkUI_NodeCustomEvent* event);
7159 
7160 /**
7161 * @brief Obtains the ID of a custom component event.
7162 *
7163 * @param event Indicates the pointer to the custom component event.
7164 * @return Returns the ID of the custom component event.
7165 * @since 12
7166 */
7167 int32_t OH_ArkUI_NodeCustomEvent_GetEventTargetId(ArkUI_NodeCustomEvent* event);
7168 
7169 /**
7170 * @brief Obtains custom event parameters through a custom component event.
7171 *
7172 * @param event Indicates the pointer to the custom component event.
7173 * @return Returns the custom event parameters.
7174 * @since 12
7175 */
7176 void* OH_ArkUI_NodeCustomEvent_GetUserData(ArkUI_NodeCustomEvent* event);
7177 
7178 /**
7179 * @brief Obtains a component object through a custom component event.
7180 *
7181 * @param event Indicates the pointer to the custom component event.
7182 * @return Returns the component object.
7183 * @since 12
7184 */
7185 ArkUI_NodeHandle OH_ArkUI_NodeCustomEvent_GetNodeHandle(ArkUI_NodeCustomEvent* event);
7186 
7187 /**
7188 * @brief Obtains the event type through a custom component event.
7189 *
7190 * @param event Indicates the pointer to the custom component event.
7191 * @return Returns the type of the custom component event.
7192 * @since 12
7193 */
7194 ArkUI_NodeCustomEventType OH_ArkUI_NodeCustomEvent_GetEventType(ArkUI_NodeCustomEvent* event);
7195 
7196 /**
7197 * @brief 通过自定义组件事件获取自定义段落组件的测量信息。
7198 *
7199 * @param event 自定义组件事件。
7200 * @param info 需要获取的测量信息。
7201 * @return 错误码。
7202 *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
7203 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} 函数参数异常。
7204 * @since 12
7205 */
7206 int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo(
7207     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMeasureInfo* info);
7208 
7209 /**
7210 * @brief 通过自定义组件事件设置自定义段落的度量指标。
7211 *
7212 * @param event 自定义组件事件。
7213 * @param metrics 需要获取的度量指标信息。
7214 * @return 错误码。
7215 *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
7216 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} 函数参数异常。
7217 * @since 12
7218 */
7219 int32_t OH_ArkUI_NodeCustomEvent_SetCustomSpanMetrics(
7220     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMetrics* metrics);
7221 
7222 /**
7223 * @brief 通过自定义组件事件获取自定义段落组件的绘制信息。
7224 *
7225 * @param event 自定义组件事件。
7226 * @param event 需要获取的绘制信息。
7227 * @return 错误码。
7228 *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
7229 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} 函数参数异常。
7230 * @since 12
7231 */
7232 int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanDrawInfo(
7233     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanDrawInfo* info);
7234 
7235 /**
7236  * @brief Adds a component to a node content.
7237  *
7238  * @param content Indicates the pointer to the node content instance.
7239  * @param node Indicates the pointer to the node.
7240  * @return Returns 0 if success.
7241  *         Returns 401 if a parameter exception occurs.
7242  * @since 12
7243  */
7244 int32_t OH_ArkUI_NodeContent_AddNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);
7245 
7246 /**
7247  * @brief Adds a component to a node content.
7248  *
7249  * @param content Indicates the pointer to the node content instance.
7250  * @param node Indicates the pointer to the node.
7251  * @return Returns 0 if success.
7252  *         Returns 401 if a parameter exception occurs.
7253  * @since 12
7254  */
7255 int32_t OH_ArkUI_NodeContent_InsertNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node, int32_t position);
7256 
7257 /**
7258  * @brief Removes a component from a node content.
7259  *
7260  * @param content Indicates the pointer to the node content.
7261  * @param node Indicates the pointer to the node.
7262  * @return Returns 0 if success.
7263  *         Returns 401 if a parameter exception occurs.
7264  * @since 12
7265  */
7266 int32_t OH_ArkUI_NodeContent_RemoveNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);
7267 
7268 /**
7269  * @brief Defines the node content event type.
7270  *
7271  * @since 12
7272  */
7273 typedef enum {
7274     /** Defines the mount event. */
7275     NODE_CONTENT_EVENT_ON_ATTACH_TO_WINDOW = 0,
7276     /** Defines the unmount event. */
7277     NODE_CONTENT_EVENT_ON_DETACH_FROM_WINDOW = 1,
7278 } ArkUI_NodeContentEventType;
7279 
7280 /**
7281  * @brief Defines the general structure of a node content event.
7282  *
7283  * @since 12
7284  */
7285 typedef struct ArkUI_NodeContentEvent ArkUI_NodeContentEvent;
7286 
7287 /**
7288   * @brief Defines the node content event callback function.
7289   *
7290   * @since 12
7291   */
7292 typedef void (*ArkUI_NodeContentCallback)(ArkUI_NodeContentEvent* event);
7293 
7294 /**
7295  * @brief Register a callback for this <b>ArkUI_NodeContentHandle</b> instance.
7296  *
7297  * @param content Indicates the <b>ArkUI_NodeContentHandle</b> instance.
7298  * @param callback Indicates the callback of <b>ArkUI_NodeContentHandle</b>
7299  * @return Returns the status code
7300  * @since 12
7301  */
7302 int32_t OH_ArkUI_NodeContent_RegisterCallback(ArkUI_NodeContentHandle content, ArkUI_NodeContentCallback callback);
7303 
7304 /**
7305  * @brief Obtains the type of a node content.
7306  *
7307  * @param event Indicates the pointer to the node content.
7308  * @return Returns the type of the node content.
7309  * @since 12
7310  */
7311 ArkUI_NodeContentEventType OH_ArkUI_NodeContentEvent_GetEventType(ArkUI_NodeContentEvent* event);
7312 
7313 /**
7314  * @brief Obtains the node content object that triggers a node content event.
7315  *
7316  * @param event Indicates the pointer to the node content event.
7317  * @return Returns the node content object that triggers the node content event.
7318  * @since 12
7319  */
7320 ArkUI_NodeContentHandle OH_ArkUI_NodeContentEvent_GetNodeContentHandle(ArkUI_NodeContentEvent* event);
7321 
7322 /**
7323  * @brief Saves custom data on the specified node content.
7324  *
7325  * @param content Indicates the node content on which the custom data will be saved.
7326  * @param userData Indicates the custom data to be saved.
7327  * @return Returns the error code.
7328  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7329  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7330  * @since 12
7331  */
7332 int32_t OH_ArkUI_NodeContent_SetUserData(ArkUI_NodeContentHandle content, void* userData);
7333 
7334 /**
7335  * @brief Obtains the custom data saved on the specified node content.
7336  *
7337  * @param content Indicates the target node content.
7338  * @return Returns the custom data.
7339  * @since 12
7340  */
7341 void* OH_ArkUI_NodeContent_GetUserData(ArkUI_NodeContentHandle content);
7342 
7343 /**
7344  * @brief Get the size of the component layout area.
7345  * The layout area size does not include graphic variation attributes such as scaling.
7346  *
7347  * @param node ArkUI_NodeHandle pointer.
7348  * @param size The drawing area size of the component handle, in px.
7349  * @return Error code.
7350  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
7351  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
7352  * @since 12
7353  */
7354 int32_t OH_ArkUI_NodeUtils_GetLayoutSize(ArkUI_NodeHandle node, ArkUI_IntSize* size);
7355 
7356 /**
7357  * @brief Obtain the position of the component layout area relative to the parent component.
7358  * The relative position of the layout area does not include graphic variation attributes, such as translation.
7359  *
7360  * @param node ArkUI_NodeHandle pointer.
7361  * @param localOffset The offset value of the component handle relative to the parent component, in px.
7362  * @return Error code.
7363  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
7364  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
7365  * @since 12
7366  */
7367 int32_t OH_ArkUI_NodeUtils_GetLayoutPosition(ArkUI_NodeHandle node, ArkUI_IntOffset* localOffset);
7368 
7369 /**
7370  * @brief Obtain the position of the component layout area relative to the window.
7371  * The relative position of the layout area does not include graphic variation attributes, such as translation.
7372  *
7373  * @param node ArkUI_NodeHandle pointer.
7374  * @param globalOffset The offset value of the component handle relative to the window, in px.
7375  * @return Error code.
7376  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
7377  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
7378  * @since 12
7379  */
7380 int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffset);
7381 
7382 /**
7383  * @brief Obtain the position of the component layout area relative to the screen.
7384  * The relative position of the layout area does not include graphic variation attributes, such as translation.
7385  *
7386  * @param node ArkUI_NodeHandle pointer.
7387  * @param screenOffset The offset value of the component handle relative to the screen, in px.
7388  * @return Error code.
7389  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
7390  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
7391  * @since 12
7392  */
7393 int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* screenOffset);
7394 
7395 /**
7396  * @brief Obtain the position of the component in the window, including the properties of graphic translation changes.
7397  *
7398  * @param node ArkUI_NodeHandle pointer.
7399  * @param translateOffset The cumulative offset value of the component handle itself,
7400  * parent components, and ancestor nodes, in px.
7401  * @return Error code.
7402  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
7403  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
7404  * @since 12
7405  */
7406 int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);
7407 
7408 /**
7409  * @brief Obtain the position of the component on the screen, including the attributes of graphic translation changes.
7410  *
7411  * @param node ArkUI_NodeHandle pointer.
7412  * @param translateOffset The cumulative offset value of the component handle itself,
7413  * parent components, and ancestor nodes, in px.
7414  * @return Error code.
7415  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
7416  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
7417  * @since 12
7418  */
7419 int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);
7420 
7421 /**
7422  * @brief Add the custom property of the component. This interface only works on the main thread.
7423  *
7424  * @param node ArkUI_NodeHandle pointer.
7425  * @param name The name of the custom property. Passing null pointers is not allowed.
7426  * @param value The value of the custom property. Passing null pointers is not allowed.
7427  * @since 13
7428  */
7429 void OH_ArkUI_NodeUtils_AddCustomProperty(ArkUI_NodeHandle node, const char* name, const char* value);
7430 
7431 /**
7432  * @brief Remove the custom property of the component.
7433  *
7434  * @param node ArkUI_NodeHandle pointer.
7435  * @param name The name of the custom property.
7436  * @since 13
7437  */
7438 void OH_ArkUI_NodeUtils_RemoveCustomProperty(ArkUI_NodeHandle node, const char* name);
7439 
7440 /**
7441  * @brief The event called when the sliding operation offset changes.
7442  *
7443  * @param node Indicates the target node.
7444  * @param userData Indicates the custom data to be saved.
7445  * @param onFinish Callback Events.
7446  *        offset Slide offset.
7447  * @return Error code.
7448  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
7449  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
7450  *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
7451  * @since 12
7452  */
7453 int32_t OH_ArkUI_List_CloseAllSwipeActions(ArkUI_NodeHandle node, void* userData, void (*onFinish)(void* userData));
7454 
7455 /**
7456 * @brief Obtain the UIContext pointer to the page where the node is located.
7457 *
7458 * @param node The node.
7459 * @return The UIContext pointer.
7460 *         If a null pointer is returned, it may be because the node is empty.
7461 * @since 12
7462 */
7463 ArkUI_ContextHandle OH_ArkUI_GetContextByNode(ArkUI_NodeHandle node);
7464 
7465 /**
7466  * @brief The event called when the system color mode changes.
7467  *        Only one system color change callback can be registered for the same component.
7468  *
7469  * @param node Indicates the target node.
7470  * @param userData Indicates the custom data to be saved.
7471  * @param onColorModeChange Callback Events.
7472  * @return Error code.
7473  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
7474  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
7475  *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
7476  * @since 12
7477  */
7478 int32_t OH_ArkUI_RegisterSystemColorModeChangeEvent(
7479     ArkUI_NodeHandle node, void* userData, void (*onColorModeChange)(ArkUI_SystemColorMode colorMode, void* userData));
7480 
7481 /**
7482  * @brief Unregister the event callback when the system color mode changes.
7483  *
7484  * @param node Indicates the target node.
7485  * @since 12
7486  */
7487 void OH_ArkUI_UnregisterSystemColorModeChangeEvent(ArkUI_NodeHandle node);
7488 
7489 /**
7490  * @brief The event called when the system font style changes.
7491  *        Only one system font change callback can be registered for the same component.
7492  *
7493  * @param node Indicates the target node.
7494  * @param userData Indicates the custom data to be saved.
7495  * @param onFontStyleChange Callback Events.
7496  * @return Error code.
7497  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
7498  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
7499  *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
7500  * @since 12
7501  */
7502 int32_t OH_ArkUI_RegisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node, void* userData,
7503     void (*onFontStyleChange)(ArkUI_SystemFontStyleEvent* event, void* userData));
7504 
7505 /**
7506  * @brief Unregister the event callback when the system font style changes.
7507  *
7508  * @param node Indicates the target node.
7509  * @since 12
7510  */
7511 void OH_ArkUI_UnregisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node);
7512 
7513 /**
7514  * @brief Retrieve the font size value for system font change events.
7515  *
7516  * @param event Indicates a pointer to the current system font change event.
7517  * @return Updated system font size scaling factor. Default value: 1.0.
7518  *         -1 indicates a retrieval error.
7519  * @since 12
7520  */
7521 float OH_ArkUI_SystemFontStyleEvent_GetFontSizeScale(const ArkUI_SystemFontStyleEvent* event);
7522 
7523 /**
7524  * @brief Retrieve the font thickness values for system font change events.
7525  *
7526  * @param event Indicates a pointer to the current system font change event.
7527  * @return The updated system font thickness scaling factor. Default value: 1.0.
7528  *         -1 indicates a retrieval error.
7529  * @since 12
7530  */
7531 float OH_ArkUI_SystemFontStyleEvent_GetFontWeightScale(const ArkUI_SystemFontStyleEvent* event);
7532 
7533 #ifdef __cplusplus
7534 };
7535 #endif
7536 
7537 #endif // ARKUI_NATIVE_NODE_H
7538 /** @}*/
7539