• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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  * @kit ArkUI
34  * @since 12
35  */
36 
37 #ifndef ARKUI_NATIVE_NODE_H
38 #define ARKUI_NATIVE_NODE_H
39 
40 #include "native_type.h"
41 #include "ui_input_event.h"
42 
43 #ifdef __cplusplus
44 #include <cstdint>
45 #else
46 #include <stdint.h>
47 #endif
48 
49 #ifdef __cplusplus
50 extern "C" {
51 #endif
52 
53 #define MAX_NODE_SCOPE_NUM 1000
54 
55 /**
56  * @brief Enumerates ArkUI component types that can be created on the native side.
57  *
58  * @since 12
59  */
60 typedef enum {
61     /** Custom node. */
62     ARKUI_NODE_CUSTOM = 0,
63     /** Text. */
64     ARKUI_NODE_TEXT = 1,
65     /** Text span. */
66     ARKUI_NODE_SPAN = 2,
67     /** Image span. */
68     ARKUI_NODE_IMAGE_SPAN = 3,
69     /** Image. */
70     ARKUI_NODE_IMAGE = 4,
71     /** Toggle. */
72     ARKUI_NODE_TOGGLE = 5,
73     /** Loading icon. */
74     ARKUI_NODE_LOADING_PROGRESS = 6,
75     /** Single-line text input. */
76     ARKUI_NODE_TEXT_INPUT = 7,
77     /** Multi-line text input. */
78     ARKUI_NODE_TEXT_AREA = 8,
79     /** Button. */
80     ARKUI_NODE_BUTTON = 9,
81     /** Progress indicator. */
82     ARKUI_NODE_PROGRESS = 10,
83     /** Check box. */
84     ARKUI_NODE_CHECKBOX = 11,
85     /** XComponent. */
86     ARKUI_NODE_XCOMPONENT = 12,
87     /** Date picker. */
88     ARKUI_NODE_DATE_PICKER = 13,
89     /** Time picker. */
90     ARKUI_NODE_TIME_PICKER = 14,
91     /** Text picker. */
92     ARKUI_NODE_TEXT_PICKER = 15,
93     /** Calendar picker. */
94     ARKUI_NODE_CALENDAR_PICKER = 16,
95     /** Slider. */
96     ARKUI_NODE_SLIDER = 17,
97     /** Radio */
98     ARKUI_NODE_RADIO = 18,
99     /** Image animator. */
100     ARKUI_NODE_IMAGE_ANIMATOR = 19,
101     /** XComponent of type TEXTURE.
102      *  @since 18
103      */
104     ARKUI_NODE_XCOMPONENT_TEXTURE,
105     /** Check box group.
106      *  @since 15
107      */
108     ARKUI_NODE_CHECKBOX_GROUP = 21,
109     /** Stack container. */
110     ARKUI_NODE_STACK = MAX_NODE_SCOPE_NUM,
111     /** Swiper. */
112     ARKUI_NODE_SWIPER,
113     /** Scrolling container. */
114     ARKUI_NODE_SCROLL,
115     /** List. */
116     ARKUI_NODE_LIST,
117     /** List item. */
118     ARKUI_NODE_LIST_ITEM,
119     /** List item group. */
120     ARKUI_NODE_LIST_ITEM_GROUP,
121     /** Column container. */
122     ARKUI_NODE_COLUMN,
123     /** Row container. */
124     ARKUI_NODE_ROW,
125     /** Flex container. */
126     ARKUI_NODE_FLEX,
127     /** Refresh component. */
128     ARKUI_NODE_REFRESH,
129     /** Water flow container. */
130     ARKUI_NODE_WATER_FLOW,
131     /** Water flow item. */
132     ARKUI_NODE_FLOW_ITEM,
133     /** Relative layout component. */
134     ARKUI_NODE_RELATIVE_CONTAINER,
135     /** Grid. */
136     ARKUI_NODE_GRID,
137     /** Grid item. */
138     ARKUI_NODE_GRID_ITEM,
139     /** Custom span. */
140     ARKUI_NODE_CUSTOM_SPAN,
141 } ArkUI_NodeType;
142 
143 /**
144  * @brief Defines the general input parameter structure of the {@link setAttribute} function.
145  *
146  * @since 12
147  */
148 typedef struct {
149     /** Numeric array. */
150     const ArkUI_NumberValue* value;
151     /** Size of the numeric array. */
152     int32_t size;
153     /** String type. */
154     const char* string;
155     /** Object type. */
156     void* object;
157 } ArkUI_AttributeItem;
158 
159 /**
160  * @brief Defines the ArkUI style attributes that can be set on the native side.
161  *
162  * @since 12
163  */
164 typedef enum {
165     /**
166      * @brief Defines the width attribute, which can be set, reset, and obtained as required through APIs.
167      *
168      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
169      * .value[0].f32: width, in vp.\n
170      * \n
171      * Format of the return value {@link ArkUI_AttributeItem}:\n
172      * .value[0].f32: width, in vp.\n
173      *
174      */
175     NODE_WIDTH = 0,
176     /**
177      * @brief Defines the height attribute, which can be set, reset, and obtained as required through APIs.
178      *
179      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
180      * .value[0].f32: height, in vp.\n
181      * \n
182      * Format of the return value {@link ArkUI_AttributeItem}:\n
183      * .value[0].f32: height, in vp.\n
184      *
185      */
186     NODE_HEIGHT,
187     /**
188      * @brief Defines the background color attribute, which can be set, reset, and obtained as required through APIs.
189      *
190      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
191      * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
192      * \n
193      * Format of the return value {@link ArkUI_AttributeItem}:\n
194      * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
195      *
196      */
197     NODE_BACKGROUND_COLOR,
198     /**
199      * @brief Defines the background image attribute, which can be set, reset, and obtained as required through APIs.
200      *
201      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
202      * .string: image address;\n
203      * .value[0]?.i32: whether to repeat the image. Optional. The parameter type is {@link ArkUI_ImageRepeat}.
204      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
205      * The default value is <b>ARKUI_IMAGE_REPEAT_NONE</b>.\n
206      * \n
207      * Format of the return value {@link ArkUI_AttributeItem}:\n
208      * .string: image address;\n
209      * .value[0].i32: whether to repeat the image. The parameter type is {@link ArkUI_ImageRepeat}.\n
210      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
211      *
212      */
213     NODE_BACKGROUND_IMAGE,
214     /**
215      * @brief Defines the padding attribute, which can be set, reset, and obtained as required through APIs.
216      *
217      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
218      * 1: Specify the same padding for the four directions. \n
219      * .value[0].f32: padding, in vp.\n
220      * 2: Specify different paddings for different directions. \n
221      * .value[0].f32: top padding, in vp.\n
222      * .value[1].f32: right padding, in vp.\n
223      * .value[2].f32: bottom padding, in vp.\n
224      * .value[3].f32: left padding, in vp.\n
225      * \n
226      * Format of the return value {@link ArkUI_AttributeItem}:\n
227      * .value[0].f32: top padding, in vp.\n
228      * .value[1].f32: right padding, in vp.\n
229      * .value[2].f32: bottom padding, in vp.\n
230      * .value[3].f32: left padding, in vp.\n
231      *
232      */
233     NODE_PADDING,
234     /**
235      * @brief Defines the component ID attribute, which can be set, reset, and obtained as required through APIs.
236      *
237      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
238      * .string: component ID.\n
239      * \n
240      * Format of the return value {@link ArkUI_AttributeItem}:\n
241      * .string: component ID.\n
242      *
243      */
244     NODE_ID,
245     /**
246      * @brief Defines the interactivity attribute, which can be set, reset, and obtained as required through APIs.
247      *
248      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
249      * .value[0].i32: The value <b>true</b> means that the component can interact with users, and <b>false</b> means the opposite.\n
250      * \n
251      * Format of the return value {@link ArkUI_AttributeItem}:\n
252      * .value[0].i32: The value <b>1</b> means that the component can interact with users, and <b>0</b> means the opposite. \n
253      *
254      */
255     NODE_ENABLED,
256     /**
257      * @brief Defines the margin attribute, which can be set, reset, and obtained as required through APIs.
258      *
259      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
260      * 1: Specify the same margin for the four directions. \n
261      * .value[0].f32: margin, in vp.\n
262      * 2: Specify different margins for different directions. \n
263      * .value[0].f32: top margin, in vp.\n
264      * .value[1].f32: right margin, in vp.\n
265      * .value[2].f32: bottom margin, in vp.\n
266      * .value[3].f32: left margin, in vp.\n
267      * \n
268      * Format of the return value {@link ArkUI_AttributeItem}:\n
269      * .value[0].f32: top margin, in vp.\n
270      * .value[1].f32: right margin, in vp.\n
271      * .value[2].f32: bottom margin, in vp.\n
272      * .value[3].f32: left margin, in vp.\n
273      *
274      */
275     NODE_MARGIN,
276     /**
277      * @brief Defines the translate 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: distance to translate along the x-axis, in vp. The default value is <b>0</b>.\n
281      * .value[1].f32: distance to translate along the y-axis, in vp. The default value is <b>0</b>.\n
282      * .value[2].f32: distance to translate along the z-axis, in vp. The default value is <b>0</b>. \n
283      * \n
284      * Format of the return value {@link ArkUI_AttributeItem}:\n
285      * .value[0].f32: distance to translate along the x-axis, in vp.\n
286      * .value[1].f32: distance to translate along the y-axis, in vp.\n
287      * .value[2].f32: distance to translate along the z-axis, in vp. \n
288      *
289      */
290     NODE_TRANSLATE,
291     /**
292      * @brief Defines the scale attribute, which can be set, reset, and obtained as required through APIs.
293      *
294      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
295      * .value[0].f32: scale factor along the x-axis. The default value is <b>1</b>.\n
296      * .value[1].f32: scale factor along the y-axis. The default value is <b>1</b>. \n
297      * \n
298      * Format of the return value {@link ArkUI_AttributeItem}:\n
299      * .value[0].f32: scale factor along the x-axis.\n
300      * .value[1].f32: scale factor along the y-axis. \n
301      *
302      */
303     NODE_SCALE,
304     /**
305      * @brief Defines the rotate attribute, which can be set, reset, and obtained as required through APIs.
306      *
307      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
308      * .value[0].f32: X coordinate of the rotation axis vector. The default value is <b>0</b>.\n
309      * .value[1].f32: Y coordinate of the rotation axis vector. The default value is <b>0</b>.\n
310      * .value[2].f32: Z coordinate of the rotation axis vector. The default value is <b>0</b>.\n
311      * .value[3].f32: rotation angle. The default value is <b>0</b>.\n
312      * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp.
313      * The default value is <b>0</b>. \n
314      * \n
315      * Format of the return value {@link ArkUI_AttributeItem}:\n
316      * .value[0].f32: X coordinate of the rotation axis vector.\n
317      * .value[1].f32: Y coordinate of the rotation axis vector.\n
318      * .value[2].f32: Z coordinate of the rotation axis vector.\n
319      * .value[3].f32: rotation angle.\n
320      * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp. \n
321      *
322      */
323     NODE_ROTATE,
324     /**
325      * @brief Sets the brightness attribute, which can be set, reset, and obtained as required through APIs.
326      *
327      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
328      * .value[0].f32: brightness value. The default value is <b>1.0</b>, and the recommended value range is [0, 2]. \n
329      * \n
330      * Format of the return value {@link ArkUI_AttributeItem}:\n
331      * .value[0].f32: brightness value. \n
332      *
333      */
334     NODE_BRIGHTNESS,
335     /**
336      * @brief Sets the saturation attribute, which can be set, reset, and obtained as required through APIs.
337      *
338      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
339      * .value[0].f32: saturation value. The default value is <b>1.0</b>, and the recommended value range is [0, 50). \n
340      * \n
341      * Format of the return value {@link ArkUI_AttributeItem}: \n
342      * .value[0].f32: saturation value. \n
343      *
344      */
345     NODE_SATURATION,
346     /**
347      * @brief Sets the blur attribute, which can be set, reset, and obtained as required through APIs.
348      *
349      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
350      * .value[0].f32: blur radius. A larger value indicates a higher blur degree. If the value is <b>0</b>,
351      * the component is not blurred. The unit is vp. The default value is <b>0.0</b>. \n
352      * \n
353      * Format of the return value {@link ArkUI_AttributeItem}:\n
354      * .value[0].f32: blur radius. The larger the fuzzy radius, the more blurred the image. If the value is <b>0</b>,
355      * the image is not blurred. The unit is vp. \n
356      *
357      */
358     NODE_BLUR,
359     /**
360      * @brief Sets the gradient attribute, which can be set, reset, and obtained as required through APIs.
361      *
362      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
363      * .value[0].f32: start angle of the linear gradient. This attribute takes effect only when
364      * {@link ArkUI_LinearGradientDirection} is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
365      * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
366      * .value[1].i32: direction of the linear gradient. When it is set, the <b>angle</b> attribute does not take effect.
367      * The parameter type is {@link ArkUI_LinearGradientDirection}: \n
368      * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>. \n
369      * .object: array of color stops, each of which consists of a color and its stop position.
370      * Invalid colors are automatically skipped. \n
371      * colors: colors of the color stops. \n
372      * stops: stop positions of the color stops. \n
373      * size: number of colors. \n
374      * \n
375      * Format of the return value {@link ArkUI_AttributeItem}: \n
376      * .value[0].f32: start angle of the linear gradient. \n
377      * .value[1].i32: direction of the linear gradient. It does not take effect when <b>angle</b> is set. \n
378      * .value[2].i32: whether the colors are repeated. \n
379      * .object: array of color stops, each of which consists of a color and its stop position.
380      * Invalid colors are automatically skipped. \n
381      * colors: colors of the color stops. \n
382      * stops: stop positions of the color stops. \n
383      * size: number of colors. \n
384      *
385      */
386     NODE_LINEAR_GRADIENT,
387     /**
388      * @brief Sets the alignment attribute, which can be set, reset, and obtained as required through APIs.
389      *
390      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
391      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
392      * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
393      * \n
394      * Format of the return value {@link ArkUI_AttributeItem}:\n
395      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
396      *
397      */
398     NODE_ALIGNMENT,
399     /**
400      * @brief Defines the opacity attribute, which can be set, reset, and obtained as required through APIs.
401      *
402      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
403      * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
404      * \n
405      * Format of the return value {@link ArkUI_AttributeItem}:\n
406      * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
407      *
408      */
409     NODE_OPACITY,
410     /**
411      * @brief Defines the border width attribute, which can be set, reset, and obtained as required through APIs.
412      *
413      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
414      * 1: .value[0].f32: width of the four borders. \n
415      * 2: .value[0].f32: width of the top border. \n
416      * .value[1].f32: width of the right border. \n
417      * .value[2].f32: width of the bottom border. \n
418      * .value[3].f32: width of the left border. \n
419      * \n
420      * Format of the return value {@link ArkUI_AttributeItem}:\n
421      * .value[0].f32: width of the top border. \n
422      * .value[1].f32: width of the right border. \n
423      * .value[2].f32: width of the bottom border. \n
424      * .value[3].f32: width of the left border. \n
425      *
426      */
427     NODE_BORDER_WIDTH,
428     /**
429      * @brief Defines the border corner radius attribute, which can be set, reset, and obtained as required through APIs.
430      *
431      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
432      * 1: .value[0].f32: radius of the four corners. \n
433      * 2: .value[0].f32: radius of the upper left corner. \n
434      * .value[1].f32: radius of the upper right corner. \n
435      * .value[2].f32: radius of the lower left corner. \n
436      * .value[3].f32: radius of the lower right corner. \n
437      * \n
438      * Format of the return value {@link ArkUI_AttributeItem}:\n
439      * .value[0].f32: radius of the upper left corner. \n
440      * .value[1].f32: radius of the upper right corner. \n
441      * .value[2].f32: radius of the lower left corner. \n
442      * .value[3].f32: radius of the lower right corner. \n
443      *
444      */
445     NODE_BORDER_RADIUS,
446     /**
447      * @brief Defines the border color attribute, which can be set, reset, and obtained as required through APIs.
448      *
449      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
450      * 1: .value[0].u32: color of the four borders, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
451      * 2: .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
452      * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
453      * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
454      * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
455      * \n
456      * Format of the return value {@link ArkUI_AttributeItem}:\n
457      * .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
458      * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
459      * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
460      * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
461      *
462      */
463     NODE_BORDER_COLOR,
464     /**
465      * @brief Defines the border line style attribute, which can be set, reset, and obtained as required through APIs.
466      *
467      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
468      * 1: .value[0].i32: line style of the four borders. The parameter type is {@link ArkUI_BorderStyle}.
469      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
470      * 2: .value[0].i32: line style of the top border. The parameter type is {@link ArkUI_BorderStyle}.
471      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
472      * .value[1].i32: line style of the right border. The parameter type is {@link ArkUI_BorderStyle}.
473      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
474      * .value[2].i32: line style of the bottom border. The parameter type is {@link ArkUI_BorderStyle}.
475      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
476      * .value[3].i32: line style of the left border. The parameter type is {@link ArkUI_BorderStyle}.
477      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
478      * \n
479      * Format of the return value {@link ArkUI_AttributeItem}:\n
480      * .value[0].i32: line style of the top border. \n
481      * .value[1].i32: line style of the right border. \n
482      * .value[2].i32: line style of the bottom border. \n
483      * .value[3].i32: line style of the left border. \n
484      *
485      */
486     NODE_BORDER_STYLE,
487     /**
488      * @brief Defines the z-index attribute for the stack sequence.
489      * This attribute can be set, reset, and obtained as required through APIs.
490      *
491      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
492      * .value[0].i32: z-index value. \n
493      * \n
494      * Format of the return value {@link ArkUI_AttributeItem}:\n
495      * .value[0].i32: z-index value. \n
496      *
497      */
498     NODE_Z_INDEX,
499     /**
500      * @brief Defines the visibility attribute, which can be set, reset, and obtained as required through APIs.
501      *
502      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
503      * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
504      * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
505      * \n
506      * Format of the return value {@link ArkUI_AttributeItem}:\n
507      * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
508      * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
509      *
510      */
511     NODE_VISIBILITY,
512     /**
513      * @brief Defines the clipping and masking attribute, which can be set, reset, and obtained as required through
514      * APIs.
515      *
516      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
517      * .value[0].i32: whether to clip the component based on the parent container bounds.
518      * The value <b>1</b> means to clip the component, and <b>0</b> means the opposite. \n
519      * \n
520      * Format of the return value {@link ArkUI_AttributeItem}:\n
521      * .value[0].i32: whether to clip the component based on the parent container bounds.
522      * The value <b>1</b> means to clip the component, and <b>0</b> means the opposite. \n
523      *
524      */
525     NODE_CLIP,
526     /**
527      * @brief Defines the clipping region on the component.
528      * This attribute can be set and obtained as required through APIs.
529      *
530      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute,
531      * which supports five types of shapes:\n
532      * 1. Rectangle:\n
533      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
534      * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape.\n
535      * .value[1].f32: width of the rectangle.\n
536      * .value[2].f32: height of rectangle.\n
537      * .value[3].f32: width of the rounded corner of the rectangle.\n
538      * .value[4].f32: height of the rounded corner of the rectangle.\n
539      * .value[5]?.f32: radius of the top left corner of the rectangular shape.\n
540      * .value[6]?.f32: radius of the bottom left corner of the rectangular shape.\n
541      * .value[7]?.f32: radius of the top right corner of the rectangular shape.\n
542      * .value[8]?.f32: radius of the bottom right corner of the rectangular shape.\n
543      * 2. Circle:\n
544      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
545      * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
546      * .value[1].f32: width of the circle.\n
547      * .value[2].f32: height of the circle.\n
548      * 3.Ellipse:\n
549      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
550      * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
551      * .value[1].f32: width of the ellipse.\n
552      * .value[2].f32: height of the ellipse.\n
553      * 4. Path:\n
554      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
555      * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
556      * .value[1].f32: width of the path.\n
557      * .value[2].f32: height of the path.\n
558      * .string: command for drawing the path.\n
559      * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
560      * 1. Rectangle:\n
561      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
562      * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape.\n
563      * .value[1].f32: width of the rectangle.\n
564      * .value[2].f32: height of rectangle.\n
565      * .value[3].f32: width of the rounded corner of the rectangle.\n
566      * .value[4].f32: height of the rounded corner of the rectangle.\n
567      * .value[5].f32: radius of the top left corner of the rectangular shape; \n
568      * .value[6].f32: radius of the bottom left corner of the rectangular shape; \n
569      * .value[7].f32: radius of the top right corner of the rectangular shape; \n
570      * .value[8].f32: radius of the bottom right corner of the rectangular shape; \n
571      * 2. Circle:\n
572      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
573      * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
574      * .value[1].f32: width of the circle.\n
575      * .value[2].f32: height of the circle.\n
576      * 3.Ellipse:\n
577      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
578      * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
579      * .value[1].f32: width of the ellipse.\n
580      * .value[2].f32: height of the ellipse.\n
581      * 4. Path:\n
582      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
583      * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
584      * .value[1].f32: width of the path.\n
585      * .value[2].f32: height of the path.\n
586      * .string: command for drawing the path.\n
587      *
588      */
589     NODE_CLIP_SHAPE,
590     /**
591      * @brief Defines the transform attribute, which can be used to translate, rotate, and scale images.
592      * 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...15].f32: 16 floating-point numbers. \n
596      * \n
597      * Format of the return value {@link ArkUI_AttributeItem}:\n
598      * .value[0...15].f32: 16 floating-point numbers. \n
599      *
600      */
601     NODE_TRANSFORM,
602     /**
603      * @brief Defines the hit test behavior attribute, which can be set, reset, and obtained as required through APIs.
604      *
605      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
606      * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
607      * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
608      * \n
609      * Format of the return value {@link ArkUI_AttributeItem}:\n
610      * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
611      * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
612      *
613      */
614     NODE_HIT_TEST_BEHAVIOR,
615     /**
616      * @brief Defines the offset attribute, which specifies the offset of the component's upper left corner relative
617      * to the parent container's. This attribute can be set, reset, and obtained as required through APIs.
618      *
619      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
620      * .value[0].f32: X coordinate. \n
621      * .value[1].f32: Y coordinate. \n
622      * \n
623      * Format of the return value {@link ArkUI_AttributeItem}:\n
624      * .value[0].f32: X coordinate. \n
625      * .value[1].f32: Y coordinate. \n
626      *
627      */
628     NODE_POSITION,
629     /**
630      * @brief Defines the shadow attribute, which can be set, reset, and obtained as required through APIs.
631      *
632      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
633      * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
634      * \n
635      * Format of the return value {@link ArkUI_AttributeItem}:\n
636      * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
637      *
638      */
639     NODE_SHADOW,
640     /**
641      * @brief Defines the custom shadow effect. This attribute can be set, reset, and obtained as required through APIs.
642      *
643      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
644      * .value[0]?.f32: blur radius of the shadow, in vp.\n
645      * .value[1]?.i32: whether to enable the coloring strategy. The value <b>1</b> means to enable the coloring
646      * strategy, and <b>0</b> (default value) means the opposite.\n
647      * .value[2]?.f32: offset of the shadow along the x-axis, in px.\n
648      * .value[3]?.f32: offset of the shadow along the y-axis, in px.\n
649      * .value[4]?.i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
650      * .value[5]?.u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
651      * .value[6]?.u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
652      * means the opposite.\n
653      *
654      * \n
655      * Format of the return value {@link ArkUI_AttributeItem}:\n
656      * .value[0].f32: blur radius of the shadow, in vp.\n
657      * .value[1].i32: whether to enable the coloring strategy. \n
658      * .value[2].f32: offset of the shadow along the x-axis, in px.\n
659      * .value[3].f32: offset of the shadow along the y-axis, in px.\n
660      * .value[4].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
661      * .value[5].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
662      * .value[6].u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
663      * means the opposite.\n
664      *
665      */
666     NODE_CUSTOM_SHADOW,
667     /**
668      * @brief Defines the background image width and height.
669      * This attribute 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].f32: width of the image. The value range is [0, +∞), and the unit is vp. \n
673      * .value[1].f32: height of the image. The value range is [0, +∞), and the unit is vp. \n
674      * \n
675      * Format of the return value {@link ArkUI_AttributeItem}:\n
676      * .value[0].f32: width of the image, in vp. \n
677      * .value[1].f32: height of the image, in vp. \n
678      *
679      */
680     NODE_BACKGROUND_IMAGE_SIZE,
681     /**
682      * @brief Defines the background image size.
683      * This attribute can be set, reset, and obtained as required through APIs.
684      *
685      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
686      * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
687      * \n
688      * Format of the return value {@link ArkUI_AttributeItem}:\n
689      * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
690      *
691      */
692     NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE,
693     /**
694      * @brief Defines the background blur attribute, which can be set, reset, and obtained as required through APIs.
695      *
696      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
697      * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
698      * .value[1]?.i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
699      * .value[2]?.i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
700      * .value[3]?.f32: blur degree. The value range is [0.0, 1.0]. \n
701      * .value[4]?.f32: start boundary of grayscale blur. \n
702      * .value[5]?.f32: end boundary of grayscale blur. \n
703      * \n
704      * Format of the return value {@link ArkUI_AttributeItem}:\n
705      * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
706      * .value[1].i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
707      * .value[2].i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
708      * .value[3].f32: blur degree. The value range is [0.0, 1.0]. \n
709      * .value[4].f32: start boundary of grayscale blur. \n
710      * .value[5].f32: end boundary of grayscale blur. \n
711      *
712      */
713     NODE_BACKGROUND_BLUR_STYLE,
714     /**
715      * @brief Defines the transform center attribute, which can be set, reset, and obtained as required through APIs.
716      *
717      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
718      * .value[0]?.f32: X coordinate of the center point, in vp.\n
719      * .value[1]?.f32: Y coordinate of the center point, in vp.\n
720      * .value[2]?.f32: Z coordinate of the center point, in vp.\n
721      * .value[3]?.f32 : X coordinate of the center point, expressed in a number that represents a percentage.
722      * For example, 0.2 indicates 20%. This attribute overwrites value[0].f32. The default value is <b>0.5f</b>. \n
723      * .value[4]?.f32 : Y coordinate of the center point, expressed in a number that represents a percentage.
724      * For example, 0.2 indicates 20%. This attribute overwrites value[1].f32. The default value is <b>0.5f</b>. \n
725      * .value[5]?.f32 : Z coordinate of the center point, expressed in a number that represents a percentage.
726      * For example, 0.2 indicates 20%. This attribute overwrites value[2].f32. The default value is <b>0.0f</b>. \n
727      * \n
728      * Format of the return value {@link ArkUI_AttributeItem}:\n
729      * .value[0].f32: X coordinate of the center point, in vp.\n
730      * .value[1].f32: Y coordinate of the center point, in vp.\n
731      * .value[2].f32: Z coordinate of the center point, in vp.\n
732      * Note: If the coordinate is expressed in a number that represents a percentage, the attribute obtaining API
733      * returns the calculated value in vp.
734      *
735      */
736     NODE_TRANSFORM_CENTER,
737     /**
738      * @brief Defines the transition opacity attribute, which can be set, reset, and obtained as required through APIs.
739      *
740      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
741      * .value[0].f32: opacity values of the start and end points.\n
742      * .value[1].i32: animation duration, in milliseconds.\n
743      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
744      * .value[3]?.i32: animation delay duration, in milliseconds.\n
745      * .value[4]?.i32: number of times that the animation is played.\n
746      * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}.\n
747      * .value[6]?.f32: animation playback speed.\n
748      * \n
749      * Format of the return value {@link ArkUI_AttributeItem}:\n
750      * .value[0].f32: opacity values of the start and end points.\n
751      * .value[1].i32: animation duration, in milliseconds.\n
752      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
753      * .value[3].i32: animation delay duration, in milliseconds. \n
754      * .value[4].i32: number of times that the animation is played. \n
755      * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
756      * .value[6].f32: animation playback speed. \n
757      *
758      */
759     NODE_OPACITY_TRANSITION,
760     /**
761      * @brief Defines the transition rotation attribute, which can be set, reset, and obtained as required through APIs.
762      *
763      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
764      * .value[0].f32: X-component of the rotation vector. \n
765      * .value[1].f32: Y-component of the rotation vector. \n
766      * .value[2].f32: Z-component of the rotation vector \n
767      * .value[3].f32: angle. \n
768      * .value[4].f32: line of sight. The default value is <b>0.0f</b>. \n
769      * .value[5].i32: animation duration, in milliseconds. \n
770      * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
771      * .value[7]?.i32: animation delay duration, in milliseconds. \n
772      * .value[8]?.i32: number of times that the animation is played. \n
773      * .value[9]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
774      * .value[10]?.f32: animation playback speed. \n
775      * \n
776      * Format of the return value {@link ArkUI_AttributeItem}:\n
777      * .value[0].f32: X-component of the rotation vector. \n
778      * .value[1].f32: Y-component of the rotation vector. \n
779      * .value[2].f32: Z-component of the rotation vector \n
780      * .value[3].f32: angle. \n
781      * .value[4].f32: line of sight. \n
782      * .value[5].i32: animation duration, in milliseconds. \n
783      * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
784      * .value[7].i32: animation delay duration, in milliseconds. \n
785      * .value[8].i32: number of times that the animation is played. \n
786      * .value[9].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
787      * .value[10].f32: animation playback speed. \n
788      *
789      */
790     NODE_ROTATE_TRANSITION,
791     /**
792      * @brief Defines the transition scaling attribute, which can be set, reset, and obtained as required through APIs.
793      *
794      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
795      * .value[0].f32: scale factor along the x-axis. \n
796      * .value[1].f32: scale factor along the y-axis. \n
797      * .value[2].f32: scale factor along the z-axis. \n
798      * .value[3].i32: animation duration, in milliseconds. \n
799      * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
800      * .value[5]?.i32: animation delay duration, in milliseconds. \n
801      * .value[6]?.i32: number of times that the animation is played. \n
802      * .value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
803      * .value[8]?.f32: animation playback speed. \n
804      * \n
805      * Format of the return value {@link ArkUI_AttributeItem}:\n
806      * .value[0].f32: scale factor along the x-axis. \n
807      * .value[1].f32: scale factor along the y-axis. \n
808      * .value[2].f32: scale factor along the z-axis. \n
809      * .value[3].i32: animation duration, in milliseconds. \n
810      * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
811      * .value[5].i32: animation delay duration, in milliseconds. \n
812      * .value[6].i32: number of times that the animation is played. \n
813      * .value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
814      * .value[8].f32: animation playback speed. \n
815      *
816      */
817     NODE_SCALE_TRANSITION,
818     /**
819      * @brief Defines the transition translation attribute.
820      * This attribute can be set, reset, and obtained as required through APIs.
821      *
822      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
823      * value[0].f32: translation distance along the x-axis, in vp.\n
824      * value[1].f32: translation distance along the y-axis, in vp.\n
825      * value[2].f32: translation distance along the z-axis, in vp.\n
826      * value[3].i32: animation duration, in milliseconds. \n
827      * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
828      * value[5]?.i32: animation delay duration, in milliseconds. \n
829      * value[6]?.i32: number of times that the animation is played. \n
830      * value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
831      * value[8]?.f32: animation playback speed. \n
832      * \n
833      * Format of the return value {@link ArkUI_AttributeItem}:\n
834      * value[0].f32: translation distance along the x-axis, in vp.\n
835      * value[1].f32: translation distance along the y-axis, in vp.\n
836      * value[2].f32: translation distance along the z-axis, in vp.\n
837      * value[3].i32: animation duration, in milliseconds. \n
838      * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
839      * value[5].i32: animation delay duration, in milliseconds. \n
840      * value[6].i32: number of times that the animation is played. \n
841      * value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
842      * value[8].f32: animation playback speed. \n
843      *
844      */
845     NODE_TRANSLATE_TRANSITION,
846     /**
847      * @brief Defines the slide-in and slide-out of the component from the screen edge during transition.
848      * This attribute can be set, reset, and obtained as required through APIs.
849      *
850      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
851      * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
852      * .value[1].i32: animation duration, in milliseconds.\n
853      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
854      * .value[3]?.i32: animation delay duration, in milliseconds.\n
855      * .value[4]?.i32: number of times that the animation is played.\n
856      * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}.\n
857      * .value[6]?.f32: animation playback speed.\n
858      * \n
859      * Format of the return value {@link ArkUI_AttributeItem}:\n
860      * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
861      * .value[1].i32: animation duration, in milliseconds.\n
862      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
863      * .value[3].i32: animation delay duration, in milliseconds. \n
864      * .value[4].i32: number of times that the animation is played. \n
865      * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
866      * .value[6].f32: animation playback speed. \n
867      *
868      */
869     NODE_MOVE_TRANSITION,
870 
871     /**
872      * @brief Defines the focus attribute, which can be set, reset, and obtained as required through APIs.
873      *
874      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
875      * .value[0].i32: The parameter type is 1 or 0.
876      * \n
877      * Format of the return value {@link ArkUI_AttributeItem}:\n
878      * .value[0].i32: The parameter type is 1 or 0.
879      *
880      */
881     NODE_FOCUSABLE,
882 
883     /**
884      * @brief Defines the default focus attribute, which can be set, reset, and obtained as required through APIs.
885      *
886      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
887      * value[0].i32: The parameter type is 1 or 0.
888      * \n
889      * Format of the return value {@link ArkUI_AttributeItem}:\n
890      * value[0].i32: The parameter type is 1 or 0.
891      *
892      */
893     NODE_DEFAULT_FOCUS,
894 
895     /**
896      * @brief Defines the touch target attribute, which can be set, reset, and obtained as required through APIs.
897      *
898      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
899      * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
900      * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
901      * .data[2].f32: width of the touch target, in %. \n
902      * .data[3].f32: height of the touch target, in %. \n
903      * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
904      * \n
905      * Format of the return value {@link ArkUI_AttributeItem}:\n
906      * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
907      * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
908      * .data[2].f32: width of the touch target, in %. \n
909      * .data[3].f32: height of the touch target, in %. \n
910      * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
911      *
912      */
913     NODE_RESPONSE_REGION,
914 
915     /**
916      * @brief Defines the overlay attribute, which can be set, reset, and obtained as required through APIs.
917      *
918      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
919      * .string: mask text.\n
920      * .value[0]?.i32: position of the overlay relative to the component. Optional.
921      * The parameter type is {@link ArkUI_Alignment}.
922      * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
923      * .value[1]?.f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. Optional. \n
924      * .value[2]?.f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp. Optional.
925      * \n
926      * Format of the return value {@link ArkUI_AttributeItem}:\n
927      * .string: mask text.\n
928      * .value[0].i32: position of the overlay relative to the component.
929      * The parameter type is {@link ArkUI_Alignment}.
930      * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
931      * .value[1].f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. \n
932      * .value[2].f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp.
933      *
934      */
935     NODE_OVERLAY,
936     /**
937      * @brief Defines the sweep gradient effect.
938      * This attribute can be set, reset, and obtained as required through APIs.
939      *
940      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
941      * .value[0]?.f32: X coordinate of the sweep gradient center relative to the upper left corner of the component.\n
942      * .value[1]?.f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component.\n
943      * .value[2]?.f32: start point of the sweep gradient. The default value is <b>0</b>. \n
944      * .value[3]?.f32: end point of the sweep gradient. The default value is <b>0</b>. \n
945      * .value[4]?.f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
946      * .value[5]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
947      * and <b>0</b> means the opposite.\n
948      * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
949      * automatically skipped.\n
950      * colors: colors of the color stops. \n
951      * stops: stop positions of the color stops. \n
952      * size: number of colors. \n
953      * \n
954      * Format of the return value {@link ArkUI_AttributeItem}:\n
955      * .value[0].f32: X coordinate of the sweep gradient center relative to the upper left corner of the component. \n
956      * .value[1].f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component. \n
957      * .value[2].f32: start point of the sweep gradient. The default value is <b>0</b>. \n
958      * .value[3].f32: end point of the sweep gradient. The default value is <b>0</b>. \n
959      * .value[4].f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
960      * .value[5].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
961      * and <b>0</b> means the opposite.\n
962      * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
963      * automatically skipped.\n
964      * colors: colors of the color stops. \n
965      * stops: stop positions of the color stops. \n
966      * size: number of colors. \n
967      *
968      */
969     NODE_SWEEP_GRADIENT,
970     /**
971      * @brief Defines the radial gradient effect.
972      * This attribute can be set, reset, and obtained as required through APIs.
973      *
974      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
975      * .value[0]?.f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
976      * .value[1]?.f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
977      * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
978      * .value[3]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
979      * and <b>0</b> means the opposite. \n
980      * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
981      * automatically skipped. \n
982      * colors: colors of the color stops. \n
983      * stops: stop positions of the color stops. \n
984      * size: number of colors. \n
985      * \n
986      * Format of the return value {@link ArkUI_AttributeItem}:\n
987      * .value[0].f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
988      * .value[1].f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
989      * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
990      * .value[3].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
991      * and <b>0</b> means the opposite.\n
992      * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
993      * automatically skipped. \n
994      * colors: colors of the color stops. \n
995      * stops: stop positions of the color stops. \n
996      * size: number of colors. \n
997      *
998      */
999     NODE_RADIAL_GRADIENT,
1000     /**
1001      * @brief Adds a mask of the specified shape to the component.
1002      * This attribute can be set, reset, and obtained as required through APIs.
1003      *
1004      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute, which supports five types of
1005      * shapes:\n
1006      * 1. Rectangle:\n
1007      * .value[0].u32 fill color, in 0xARGB format. \n
1008      * .value[1].u32: stroke color, in 0xARGB format. \n
1009      * .value[2].f32: stroke width, in vp. \n
1010      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1011      * The value is <b>ARKUI_MASK_TYPE_RECTANGLE</b> for the rectangle shape.\n
1012      * .value[4].f32: width of the rectangle.\n
1013      * .value[5].f32: height of the rectangle.\n
1014      * .value[6].f32: width of the rounded corner of the rectangle.\n
1015      * .value[7].f32: height of the rounded corner of the rectangle.\n
1016      * .value[8]?.f32: radius of the top left corner of the rectangular shape.\n
1017      * .value[9]?.f32: radius of the bottom left corner of the rectangular shape.\n
1018      * .value[10]?.f32: radius of the top right corner of the rectangular shape.\n
1019      * .value[11]?.f32: radius of the bottom right corner of the rectangular shape.\n
1020      * 2. Circle:\n
1021      * .value[0].u32 fill color, in 0xARGB format. \n
1022      * .value[1].u32: stroke color, in 0xARGB format. \n
1023      * .value[2].f32: stroke width, in vp. \n
1024      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1025      * The value is <b>ARKUI_MASK_TYPE_CIRCLE</b> for the circle shape.\n
1026      * .value[4].f32: width of the circle.\n
1027      * .value[5].f32: height of the circle.\n
1028      * 3. Ellipse:\n
1029      * .value[0].u32 fill color, in 0xARGB format. \n
1030      * .value[1].u32: stroke color, in 0xARGB format. \n
1031      * .value[2].f32: stroke width, in vp. \n
1032       * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1033       * The value is <b>ARKUI_MASK_TYPE_ELLIPSE</b> for the ellipse shape.\n
1034      * .value[4].f32: width of the ellipse.\n
1035      * .value[5].f32: height of the ellipse.\n
1036      * 4. Path:\n
1037      * .value[0].u32 fill color, in 0xARGB format. \n
1038      * .value[1].u32: stroke color, in 0xARGB format. \n
1039      * .value[2].f32: stroke width, in vp. \n
1040      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1041      * The value is <b>ARKUI_MASK_TYPE_PATH</b> for the path shape.\n
1042      * .value[4].f32: width of the path.\n
1043      * .value[5].f32: height of the path.\n
1044      * .string: command for drawing the path.\n
1045      * 5. Progress:\n
1046      * .value[0].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1047      * The value is <b>ARKUI_MASK_TYPE_PROGRESS</b> for the progress shape.\n
1048      * .value[1].f32: current value of the progress indicator.\n
1049      * .value[2].f32: maximum value of the progress indicator.\n
1050      * .value[3].u32: color of the progress indicator, in 0xARGB format.\n
1051      * \n
1052      * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
1053      * 1. Rectangle:\n
1054      * .value[0].u32 fill color, in 0xARGB format. \n
1055      * .value[1].u32: stroke color, in 0xARGB format. \n
1056      * .value[2].f32: stroke width, in vp. \n
1057      * .value[3].i32: mask type.\n
1058      * .value[4].f32: width of the rectangle.\n
1059      * .value[5].f32: height of the rectangle.\n
1060      * .value[6].f32: width of the rounded corner of the rectangle.\n
1061      * .value[7].f32: height of the rounded corner of the rectangle.\n
1062      * .value[8].f32: radius of the top left corner of the rectangular shape.\n
1063      * .value[9].f32: radius of the bottom left corner of the rectangular shape.\n
1064      * .value[10].f32: radius of the top right corner of the rectangular shape.\n
1065      * .value[11].f32: radius of the bottom right corner of the rectangular shape.\n
1066      * 2. Circle:\n
1067      * .value[0].u32 fill color, in 0xARGB format. \n
1068      * .value[1].u32: stroke color, in 0xARGB format. \n
1069      * .value[2].f32: stroke width, in vp. \n
1070      * .value[3].i32: mask type.\n
1071      * .value[4].f32: width of the circle.\n
1072      * .value[5].f32: height of the circle.\n
1073      * 3. Ellipse:\n
1074      * .value[0].u32 fill color, in 0xARGB format. \n
1075      * .value[1].u32: stroke color, in 0xARGB format. \n
1076      * .value[2].f32: stroke width, in vp. \n
1077      * .value[3].i32: mask type.\n
1078      * .value[4].f32: width of the ellipse.\n
1079      * .value[5].f32: height of the ellipse.\n
1080      * 4. Path:\n
1081      * .value[0].u32 fill color, in 0xARGB format. \n
1082      * .value[1].u32: stroke color, in 0xARGB format. \n
1083      * .value[2].f32: stroke width, in vp. \n
1084      * .value[3].i32: mask type.\n
1085      * .value[4].f32: width of the path.\n
1086      * .value[5].f32: height of the path.\n
1087      * .string: command for drawing the path.\n
1088      * 5. Progress:\n
1089      * .value[0].i32: mask type.\n
1090      * .value[1].f32: current value of the progress indicator.\n
1091      * .value[2].f32: maximum value of the progress indicator.\n
1092      * .value[3].u32: color of the progress indicator.\n
1093      *
1094      */
1095     NODE_MASK,
1096     /**
1097      * @brief Blends the component's background with the content of the component's child node.
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].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
1102      * <b>ARKUI_BLEND_MODE_NONE</b>. \n
1103      * .value[1].?i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
1104      * The default value is <b>ARKUI_BLEND_APPLY_TYPE_FAST</b>. \n
1105      * \n
1106      * Format of the return value {@link ArkUI_AttributeItem}:\n
1107      * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
1108      * <b>ARKUI_BLEND_MODE_NONE</b>. \n
1109      * .value[1].i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
1110      * The default value is <b>ARKUI_BLEND_APPLY_TYPE_FAST</b>. \n
1111      *
1112      */
1113     NODE_BLEND_MODE,
1114     /**
1115      * @brief Sets the direction of the main axis.
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].i32: direction of the main axis.\n
1120      * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
1121      * \n
1122      * Format of the return value {@link ArkUI_AttributeItem}:\n
1123      * .value[0].i32: direction of the main axis.\n
1124      * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
1125      *
1126      */
1127     NODE_DIRECTION,
1128     /**
1129      * @brief Defines the size constraints.
1130      * This attribute can be set, reset, and obtained as required through APIs.
1131      *
1132      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1133      * .value[0].f32: minimum width, in vp.\n
1134      * .value[1].f32: maximum width, in vp.\n
1135      * .value[2].f32: minimum height, in vp.\n
1136      * .value[3].f32: maximum height, in vp.\n
1137      * \n
1138      * Format of the return value {@link ArkUI_AttributeItem}:\n
1139      * .value[0].f32: minimum width, in vp.\n
1140      * .value[1].f32: maximum width, in vp.\n
1141      * .value[2].f32: minimum height, in vp.\n
1142      * .value[3].f32: maximum height, in vp.\n
1143      *
1144      */
1145     NODE_CONSTRAINT_SIZE,
1146     /**
1147      * @brief Defines the grayscale effect.
1148      * This attribute can be set, reset, and obtained as required through APIs.
1149      *
1150      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1151      * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.
1152      * For example, 0.5 indicates a 50% grayscale conversion ratio. \n
1153      * \n
1154      * Format of the return value {@link ArkUI_AttributeItem}:\n
1155      * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.\n
1156      *
1157      */
1158     NODE_GRAY_SCALE,
1159     /**
1160      * @brief Inverts the image.
1161      * This attribute can be set, reset, and obtained as required through APIs.
1162      *
1163      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1164      * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.
1165      * For example, 0.5 indicates a 50% image inversion ratio.\n
1166      * \n
1167      * Format of the return value {@link ArkUI_AttributeItem}:\n
1168      * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.\n
1169      *
1170      */
1171     NODE_INVERT,
1172     /**
1173      * @brief Defines the sepia conversion ratio.
1174      * This attribute can be set, reset, and obtained as required through APIs.
1175      *
1176      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1177      * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.
1178      * For example, 0.5 indicates that a 50% sepia conversion ratio.\n
1179      * \n
1180      * Format of the return value {@link ArkUI_AttributeItem}:\n
1181      * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.\n
1182      *
1183      */
1184     NODE_SEPIA,
1185     /**
1186      * @brief Defines the contrast attribute, which can be set, reset, and obtained as required through APIs.
1187      *
1188      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1189      * .value[0].f32: contrast. If the value is <b>1</b>, the source image is displayed.
1190      * A larger value indicates a higher contrast. Value range: [0, 10).\n
1191      * \n
1192      * Format of the return value {@link ArkUI_AttributeItem}:\n
1193      * .value[0].f32: contrast. Value range: [0, 10).\n
1194      *
1195      */
1196     NODE_CONTRAST,
1197     /**
1198      * @brief Defines the foreground color attribute, which can be set, reset, and obtained as required through APIs.
1199      *
1200      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
1201      * 1: .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
1202      * 2: .value[0].i32: color enum {@link ArkUI_ColoringStrategy}.\n
1203      * \n
1204      * Format of the return value {@link ArkUI_AttributeItem}:\n
1205      * .value[0].u32: color value, in 0xARGB format.\n
1206      *
1207      */
1208     NODE_FOREGROUND_COLOR,
1209 
1210     /**
1211      * @brief Defines the offset of the component's child relative to the component.
1212      * This attribute can be set, reset, and obtained as required through APIs.
1213      *
1214      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1215      * .value[0].f32 : offset along the x-axis, in vp. \n
1216      * .value[1].f32 : offset along the y-axis, in vp. \n
1217      * \n
1218      * Format of the return value {@link ArkUI_AttributeItem}:\n
1219      * .value[0].f32 : offset along the x-axis, in vp. \n
1220      * .value[1].f32 : offset along the y-axis, in vp. \n
1221      *
1222      */
1223     NODE_OFFSET,
1224     /**
1225      * @brief Sets the anchor for locating the component's child.
1226      * This attribute can be set, reset, and obtained as required through APIs.
1227      *
1228      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1229      * .value[0].f32: X coordinate of the anchor, in vp.\n
1230      * .value[1].f32: Y coordinate of the anchor, in vp.\n
1231      * \n
1232      * Format of the return value {@link ArkUI_AttributeItem}:\n
1233      * .value[0].f32: X coordinate of the anchor, in vp.\n
1234      * .value[1].f32: Y coordinate of the anchor, in vp.\n
1235      *
1236      */
1237     NODE_MARK_ANCHOR,
1238     /**
1239      * @brief Defines the position of the background image in the component, that is, the coordinates relative to
1240      * the upper left corner of the component. This attribute can be set, reset, and obtained as required through APIs.
1241      *
1242      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1243      * .value[0].f32: position along the x-axis, in px. \n
1244      * .value[1].f32: position along the y-axis, in px. \n
1245      * \n
1246      * Format of the return value {@link ArkUI_AttributeItem}:\n
1247      * .value[0].f32: position along the x-axis, in px. \n
1248      * .value[1].f32: position along the y-axis, in px. \n
1249      *
1250      */
1251     NODE_BACKGROUND_IMAGE_POSITION,
1252     /**
1253      * @brief Sets the alignment rules in the relative container.
1254      * This attribute can be set, reset, and obtained as required through APIs.
1255      *
1256      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1257      * .object: Use the {@link ArkUI_AlignmentRuleOption} object as the component’s alignment rule. \n
1258      * \n
1259      * Format of the return value {@link ArkUI_AttributeItem}:\n
1260      * .object: Use the {@link ArkUI_AlignmentRuleOption} object as the component’s alignment rule. \n
1261      *
1262      */
1263     NODE_ALIGN_RULES,
1264     /**
1265      * @brief Sets the alignment mode of the child components along the cross axis of the parent container.
1266      * This attribute can be set, reset, and obtained as required through APIs.
1267      *
1268      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1269      * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
1270      * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
1271      * \n
1272      * Format of the return value {@link ArkUI_AttributeItem}:\n
1273      * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
1274      * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
1275      *
1276      */
1277     NODE_ALIGN_SELF,
1278     /**
1279      * @brief Sets the percentage of the parent container's remaining space that is allocated to the component.
1280      * This attribute can be set, reset, and obtained as required through APIs.
1281      *
1282      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1283      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1284      * \n
1285      * Format of the return value {@link ArkUI_AttributeItem}:\n
1286      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1287      *
1288      */
1289     NODE_FLEX_GROW,
1290     /**
1291      * @brief Sets the percentage of the parent container's shrink size that is allocated to the component.
1292      * This attribute can be set, reset, and obtained as required through APIs.
1293      *
1294      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1295      * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
1296      * \n
1297      * Format of the return value {@link ArkUI_AttributeItem}:\n
1298      * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
1299      *
1300      */
1301     NODE_FLEX_SHRINK,
1302     /**
1303      * @brief Sets the base size of the component.
1304      * This attribute can be set, reset, and obtained as required through APIs.
1305      *
1306      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1307      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1308      * \n
1309      * Format of the return value {@link ArkUI_AttributeItem}:\n
1310      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1311      *
1312      */
1313     NODE_FLEX_BASIS,
1314     /**
1315      * @brief Sets the accessibility group. This attribute can be set, reset, and obtained as required through APIs.
1316      *
1317      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1318      * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
1319      * form an entire selectable component.
1320      * In this case, the accessibility service will no longer be available for the content of its child components.
1321      * The value is <b>1</b> or <b>0</b>.
1322      * \n
1323      * Format of the return value {@link ArkUI_AttributeItem}:\n
1324      * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
1325      * form an entire selectable component.
1326      * In this case, the accessibility service will no longer be available for the content of its child components.
1327      * The value is <b>1</b> or <b>0</b>.
1328      *
1329      */
1330     NODE_ACCESSIBILITY_GROUP,
1331 
1332     /**
1333      * @brief Sets the accessibility text. This attribute can be set, reset, and obtained as required through APIs.
1334      *
1335      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1336      * .string: accessibility text.
1337      * \n
1338      * Format of the return value {@link ArkUI_AttributeItem}:\n
1339      * .string: accessibility text.
1340      *
1341      */
1342     NODE_ACCESSIBILITY_TEXT,
1343 
1344     /**
1345      * @brief Sets the accessibility service model. This attribute can be set, reset, and obtained as required through APIs.
1346      *
1347      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1348      * .value[0].i32: accessibility service model. The parameter type is {@link ArkUI_AccessibilityMode}.
1349      * \n
1350      * Format of the return value {@link ArkUI_AttributeItem}:\n
1351      * .value[0].i32: accessibility service model. The parameter type is {@link ArkUI_AccessibilityMode}.
1352      *
1353      */
1354     NODE_ACCESSIBILITY_MODE,
1355 
1356     /**
1357      * @brief Sets the accessibility description.
1358      * This attribute can be set, reset, and obtained as required through APIs.
1359      *
1360      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1361      * .string: accessibility description.
1362      * \n
1363      * Format of the return value {@link ArkUI_AttributeItem}:\n
1364      * .string: accessibility description.
1365      *
1366      */
1367     NODE_ACCESSIBILITY_DESCRIPTION,
1368 
1369     /**
1370      * @brief Defines the focused state. This attribute can be set and obtained as required through APIs.
1371      * @note Setting the parameter to <b>0</b> shifts focus from the currently focused component on the current level
1372      * of the page to the root container.
1373      *
1374      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1375      * .value[0].i32: The parameter type is 1 or 0.
1376      * \n
1377      * Format of the return value {@link ArkUI_AttributeItem}:\n
1378      * .value[0].i32: The parameter type is 1 or 0.
1379      *
1380      */
1381     NODE_FOCUS_STATUS,
1382     /**
1383      * @brief Defines the aspect ratio attribute, which can be set, reset, and obtained as required through APIs.
1384      *
1385      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1386      * .value[0].f32: aspect ratio of the component, in width/height format. \n
1387      * \n
1388      * Format of the return value {@link ArkUI_AttributeItem}:\n
1389      * .value[0].f32: aspect ratio of the component, in width/height format. \n
1390      *
1391      */
1392     NODE_ASPECT_RATIO,
1393     /**
1394      * @brief Defines the weight of the component within its row, column, or flex container for proportional
1395      * distribution of available space within the container.
1396      * This attribute can be set, reset, and obtained as required through APIs.
1397      *
1398      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1399      * .value[0].u32: weight of the component along the main axis. \n
1400      * \n
1401      * Format of the return value {@link ArkUI_AttributeItem}:\n
1402      * .value[0].u32: weight of the component along the main axis. \n
1403      *
1404      */
1405     NODE_LAYOUT_WEIGHT,
1406     /**
1407      * @brief Sets the display priority for the component in the row, column, or flex  (single-line) container.
1408      * This attribute can be set, reset, and obtained as required through APIs.
1409      *
1410      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1411      * .value[0].u32: display priority of the component in the container. \n
1412      * \n
1413      * Format of the return value {@link ArkUI_AttributeItem}:\n
1414      * .value[0].u32: display priority of the component in the container. \n
1415      *
1416      */
1417     NODE_DISPLAY_PRIORITY,
1418     /**
1419      * @brief Sets the thickness of an element's outline.
1420      *
1421      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1422      * .value[0].f32: thickness of the left outline. \n
1423      * .value[1].f32: thickness of the top outline. \n
1424      * .value[2].f32: thickness of the right outline. \n
1425      * .value[3].f32: thickness of the bottom outline. \n
1426      * \n
1427      * Format of the return value {@link ArkUI_AttributeItem}:\n
1428      * .value[0].f32: thickness of the left outline. \n
1429      * .value[1].f32: thickness of the top outline. \n
1430      * .value[2].f32: thickness of the right outline. \n
1431      * .value[3].f32: thickness of the bottom outline. \n
1432      *
1433      */
1434     NODE_OUTLINE_WIDTH,
1435     /**
1436      * @brief Defines the width attribute, which can be set, reset, and obtained as required through APIs.
1437      *
1438      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1439      * .value[0].f32: width, in percentage.\n
1440      * \n
1441      * Format of the return value {@link ArkUI_AttributeItem}:\n
1442      * .value[0].f32: width, in percentage.\n
1443      *
1444      */
1445     NODE_WIDTH_PERCENT,
1446     /**
1447      * @brief Defines the height attribute, which can be set, reset, and obtained as required through APIs.
1448      *
1449      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1450      * .value[0].f32: height, in percentage.\n
1451      * \n
1452      * Format of the return value {@link ArkUI_AttributeItem}:\n
1453      * .value[0].f32: height, in percentage.\n
1454      *
1455      */
1456     NODE_HEIGHT_PERCENT,
1457     /**
1458      * @brief Defines the padding attribute, which can be set, reset, and obtained as required through APIs.
1459      *
1460      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
1461      * 1: Specify the same padding for the four directions. \n
1462      * .value[0].f32: padding, in percentage.\n
1463      * 2: Specify different paddings for different directions. \n
1464      * .value[0].f32: top padding, in percentage.\n
1465      * .value[1].f32: right padding, in percentage.\n
1466      * .value[2].f32: bottom padding, in percentage.\n
1467      * .value[3].f32: left padding, in percentage.\n
1468      * \n
1469      * Format of the return value {@link ArkUI_AttributeItem}:\n
1470      * .value[0].f32: top padding, in percentage.\n
1471      * .value[1].f32: right padding, in percentage.\n
1472      * .value[2].f32: bottom padding, in percentage.\n
1473      * .value[3].f32: left padding, in percentage.\n
1474      *
1475      */
1476     NODE_PADDING_PERCENT,
1477     /**
1478      * @brief Defines the margin attribute, which can be set, reset, and obtained as required through APIs.
1479      *
1480      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
1481      * 1: Specify the same margin for the four directions. \n
1482      * .value[0].f32: margin, in percentage.\n
1483      * 2: Specify different margins for different directions. \n
1484      * .value[0].f32: top margin, in percentage.\n
1485      * .value[1].f32: right margin, in percentage.\n
1486      * .value[2].f32: bottom margin, in percentage.\n
1487      * .value[3].f32: left margin, in percentage.\n
1488      * \n
1489      * Format of the return value {@link ArkUI_AttributeItem}:\n
1490      * .value[0].f32: top margin, in percentage.\n
1491      * .value[1].f32: right margin, in percentage.\n
1492      * .value[2].f32: bottom margin, in percentage.\n
1493      * .value[3].f32: left margin, in percentage.\n
1494      *
1495      */
1496     NODE_MARGIN_PERCENT,
1497 
1498     /**
1499       * @brief The implicit shared element transition within the component supports attribute setting,
1500       * attribute reset, and attribute acquisition interfaces.
1501       *
1502       * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
1503       * .value[0]?.i32: The parameter type is 1 or 0. 2 components that share element bindings,
1504       * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
1505       * the default is false, and the original position will remain unchanged if not involved. \n
1506       * .string is used to set the binding relationship. Set the id to "" to
1507       * clear the binding relationship to avoid participating in sharing behavior. \n
1508       * The id can be changed and the binding relationship re-established.
1509       * The same ID can only be bound to two components and they are in/out roles of different types.
1510       * Multiple components cannot be bound to the same id. \n
1511       *\n
1512       * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
1513       * .value[0].i32: The parameter type is 1 or 0. 2 components that share element bindings,
1514       * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
1515       * the default is not false, if not involved, the original position will remain unchanged. \n
1516       * .string is used to set the binding relationship. Set the id to "" to
1517       * clear the binding relationship to avoid participating in sharing behavior. \n
1518       * The id can be changed and the binding relationship re-established.
1519       * The same ID can only be bound to two components and they are in/out roles of different types.
1520       * Multiple components cannot be bound to the same id. \n
1521       */
1522     NODE_GEOMETRY_TRANSITION,
1523 
1524     /**
1525       * @brief specifies the parameters of the chain formed by this component as the chain head,
1526       * and supports attribute setting, attribute reset and attribute acquisition interfaces.
1527       *
1528       * Only takes effect when the parent container is RelativeContainer
1529       *
1530       * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
1531       * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
1532       * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
1533       *\n
1534       * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
1535       * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
1536       */
1537     NODE_RELATIVE_LAYOUT_CHAIN_MODE,
1538 
1539     /**
1540      * @brief Set the component content filling method in the process of width and height animation,
1541      * support property setting, property reset, property acquisition interface.
1542      *
1543      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1544      * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
1545      * \n
1546      * Format of the return value {@link ArkUI_AttributeItem}:\n
1547      * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
1548      *
1549      */
1550     NODE_RENDER_FIT,
1551 
1552     /**
1553      * @brief External stroke color properties, support property setting,
1554      * property reset and property acquisition interface.
1555      *
1556      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1557      * 1: .value[0].u32: Set the border color of the four sides uniformly, using 0xargb, such as 0xFFFF11FF. \n
1558      * 2: .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
1559      * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
1560      * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
1561      * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
1562      * \n
1563      * Format of the return value {@link ArkUI_AttributeItem}:\n
1564      * .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
1565      * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
1566      * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
1567      * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
1568      *
1569      */
1570     NODE_OUTLINE_COLOR,
1571 
1572     /**
1573      * @brief Set the height and width dimensions, support property setting,
1574      * property reset and property acquisition interface.
1575      *
1576      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1577      * .value[0].f32: Width value, unit is vp;\n
1578      * .value[1].f32: Height value, unit is vp;\n
1579      * \n
1580      * Format of the return value {@link ArkUI_AttributeItem}:\n
1581      * .value[0].f32: Width value, unit is vp;\n
1582      * .value[1].f32: Height value, unit is vp;\n
1583      *
1584      */
1585     NODE_SIZE,
1586 
1587     /**
1588      * @brief Set whether the current component and child component are
1589      * rendered off the screen first and then fused with the parent control,
1590      * supporting property setting, property reset and property acquisition.
1591      *
1592      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1593      * .value[0].i32: The parameter type is 1 or 0.
1594      * \n
1595      * Format of the return value {@link ArkUI_AttributeItem}:\n
1596      * .value[0].i32: The parameter type is 1 or 0.
1597      *
1598      */
1599     NODE_RENDER_GROUP,
1600 
1601     /**
1602      * @brief Add color overlay effect to components, support property setting,
1603      * property reset and property acquisition interface.
1604      *
1605      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1606      * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
1607      * \n
1608      * Format of the return value {@link ArkUI_AttributeItem}:\n
1609      * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
1610      *
1611      */
1612     NODE_COLOR_BLEND,
1613 
1614     /**
1615      * @brief Provide content ambiguity capability for the current component,
1616      * support property setting, property reset, property acquisition interface.
1617      *
1618      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1619      * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
1620      * .value[1]?.i32 Represents the dark and light mode used by the content blur effect,\n
1621      * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
1622      * .value[2]?.i32 The color extraction mode used to represent the content blur effect takes\n
1623      * the {@link ArkUI_AdaptiveColor} enumeration value.\n
1624      * .value[3]?.f32: blur degree. The value range is [0.0, 1.0]. \n
1625      * .value[4]?.f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1626      * .value[5]?.f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1627      * \n
1628      * Format of the return value {@link ArkUI_AttributeItem}:\n
1629      * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
1630      * .value[1].i32 Represents the dark and light mode used by the content blur effect,\n
1631      * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
1632      * .value[2].i32 The color extraction mode used to represent the content blur effect takes\n
1633      * the {@link ArkUI_AdaptiveColor} enumeration value.\n
1634      * .value[3].f32: blur degree. The value range is [0.0, 1.0]. \n
1635      * .value[4].f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1636      * .value[5].f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1637      *
1638      */
1639     NODE_FOREGROUND_BLUR_STYLE,
1640 
1641     /**
1642      * @brief Defines the component size and position for layout.
1643      * This attribute can be set, reset, and obtained as required through APIs.
1644      *
1645      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1646      * .value[0].i32: X coordinate of the component, in px. \n
1647      * .value[1].i32: Y coordinate of the component, in px. \n
1648      * .value[2].i32: width of the component, in px. \n
1649      * .value[3].i32: height of the component, in px. \n
1650      * \n
1651      * Format of the return value {@link ArkUI_AttributeItem}:\n
1652      * .value[0].i32: X coordinate of the component, in px. \n
1653      * .value[1].i32: Y coordinate of the component, in px. \n
1654      * .value[2].i32: width of the component, in px. \n
1655      * .value[3].i32: height of the component, in px. \n
1656      *
1657      */
1658     NODE_LAYOUT_RECT,
1659 
1660     /**
1661      * @brief Whether the current component supports click-to-focus capability,
1662      * which can be set, reset, and obtained as required through APIs.
1663      *
1664      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1665      * .value[0].i32: The parameter type is 1 or 0.
1666      * \n
1667      * Format of the return value {@link ArkUI_AttributeItem}:\n
1668      * .value[0].i32: The parameter type is 1 or 0.
1669      *
1670      */
1671     NODE_FOCUS_ON_TOUCH,
1672 
1673     /**
1674      * @brief Defines the border width attribute, which can be set, reset, and obtained as required through APIs.
1675      *
1676      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1677      * 1: .value[0].f32: width of the four borders, in percentage. \n
1678      * 2: .value[0].f32: width of the top border, in percentage. \n
1679      * .value[1].f32: width of the right border, in percentage. \n
1680      * .value[2].f32: width of the bottom border, in percentage. \n
1681      * .value[3].f32: width of the left border, in percentage. \n
1682      * \n
1683      * Format of the return value {@link ArkUI_AttributeItem}:\n
1684      * .value[0].f32: width of the top border, in percentage. \n
1685      * .value[1].f32: width of the right border, in percentage. \n
1686      * .value[2].f32: width of the bottom border, in percentage. \n
1687      * .value[3].f32: width of the left border, in percentage. \n
1688      *
1689      */
1690     NODE_BORDER_WIDTH_PERCENT = 85,
1691     /**
1692      * @brief Defines the border corner radius attribute, which can be set, reset, and obtained as required through APIs.
1693      *
1694      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1695      * 1: .value[0].f32: radius of the four corners, in percentage. \n
1696      * 2: .value[0].f32: radius of the upper left corner, in percentage. \n
1697      * .value[1].f32: radius of the upper right corner, in percentage. \n
1698      * .value[2].f32: radius of the lower left corner, in percentage. \n
1699      * .value[3].f32: radius of the lower right corner, in percentage. \n
1700      * \n
1701      * Format of the return value {@link ArkUI_AttributeItem}:\n
1702      * .value[0].f32: radius of the upper left corner, in percentage. \n
1703      * .value[1].f32: radius of the upper right corner, in percentage. \n
1704      * .value[2].f32: radius of the lower left corner, in percentage. \n
1705      * .value[3].f32: radius of the lower right corner, in percentage. \n
1706      *
1707      */
1708     NODE_BORDER_RADIUS_PERCENT = 86,
1709 
1710     /**
1711      * @brief Accessible ID, which can be obtained as required through APIs.
1712      *
1713      * Format of the return value {@link ArkUI_AttributeItem}:\n
1714      * .value[0].i32:Accessible ID。\n
1715      *
1716      */
1717     NODE_ACCESSIBILITY_ID = 87,
1718 
1719     /**
1720      * @brief Define accessible actions, which can be set, reset, and obtained as required through APIs.
1721      *
1722      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1723      * .value[0].u32:accessible action types,and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
1724      * \n
1725      * Format of the return value {@link ArkUI_AttributeItem}:\n
1726      * .value[0].u32:accessible action types,and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
1727      *
1728      */
1729     NODE_ACCESSIBILITY_ACTIONS = 88,
1730 
1731     /**
1732      * @brief Define accessible role, 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].u32:accessible role type,and uses the {@link ArkUI_NodeType} enumeration value.\n
1736      * \n
1737      * Format of the return value {@link ArkUI_AttributeItem}:\n
1738      * .value[0].u32:accessible role type,and uses the {@link ArkUI_NodeType} enumeration value.\n
1739      *
1740      */
1741     NODE_ACCESSIBILITY_ROLE = 89,
1742 
1743     /**
1744      * @brief Define accessible state, which can be set, reset, and obtained as required through APIs.
1745      *
1746      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1747      * .object:the parameter type is {@link ArkUI_AccessibilityState}.\n
1748      * \n
1749      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1750      * .object:the parameter type is {@link ArkUI_AccessibilityState}.\n
1751      *
1752      */
1753     NODE_ACCESSIBILITY_STATE = 90,
1754 
1755     /**
1756      * @brief Define accessible value, which can be set, reset, and obtained as required through APIs.
1757      *
1758      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1759      * .object:the parameter type is {@link ArkUI_AccessibilityValue}.\n
1760      * \n
1761      * Format of the return value {@link ArkUI_AttributeItem}:\n
1762      * .object:the parameter type is {@link ArkUI_AccessibilityValue}.\n
1763      *
1764      */
1765     NODE_ACCESSIBILITY_VALUE = 91,
1766     /**
1767      * @brief defines control components to extend their security zones,
1768      * supporting property setting, property reset, and property fetching.
1769      *
1770      * Attribute setting method {@link ArkUI_AttributeItem} Parameter format: \n
1771      * .value[0]? .u32: Set of extended security zone enumerated values {@link ArkUI_SafeAreaType},
1772      * For example, ARKUI_SAFE_AREA_TYPE_SYSTEM | ARKUI_SAFE_AREA_TYPE_CUTOUT; \n
1773      * .value[1]? .u32: set of directional enum values for extended security zones {@link ArkUI_SafeAreaEdge}; \n
1774      * For example: ARKUI_SAFE_AREA_EDGE_TOP | ARKUI_SAFE_AREA_EDGE_BOTTOM; \n
1775      * \n
1776      * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
1777      *.value[0].u32: extends the security zone. \n. \n
1778      *.value[1].u32: indicates the direction to extend the security zone. \n. \n
1779      *
1780      */
1781     NODE_EXPAND_SAFE_AREA = 92,
1782 
1783     /**
1784      * @brief Defines the visible area ratio (visible area/total area of the component) threshold for invoking the
1785      * visible area change event of the component.
1786      *
1787      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1788      * .value[...].f32: threshold array. The value range is 0 to 1.
1789      * \n
1790      * Format of the return value {@link ArkUI_AttributeItem}:\n
1791      * .value[...].f32: threshold array. \n
1792      *
1793      */
1794     NODE_VISIBLE_AREA_CHANGE_RATIO = 93,
1795 
1796     /**
1797      * @brief Sets the transition effect when the component is inserted or deleted.
1798      * This attribute can be set, and obtained as required through APIs.
1799      *
1800      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1801      * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
1802      * \n
1803      * Format of the return value {@link ArkUI_AttributeItem}:\n
1804      * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
1805      *
1806      */
1807     NODE_TRANSITION = 94,
1808 
1809     /**
1810      * @brief Defines the component ID.
1811      * This attribute can be obtained through APIs.
1812      *
1813      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:\n
1814      * .value[0].i32: component ID. \n
1815      *
1816      */
1817     NODE_UNIQUE_ID = 95,
1818 
1819     /**
1820      * @brief Set the current component system focus box style.
1821      *
1822      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
1823      * .value[0].f32: The distance between the focus box and the edge of the component. \n
1824      * Positive numbers represent the outer side, negative numbers represent the inner side. \n
1825      * Percentage is not supported. \n
1826      * .value[1].f32: Focus box width. Negative numbers and percentages are not supported. \n
1827      * .value[2].u32: Focus box color. \n
1828      * \n
1829      *
1830      */
1831     NODE_FOCUS_BOX = 96,
1832 
1833     /**
1834      * @brief Defines the moving distance limit for the component-bound tap gesture.
1835      * This attribute can be set as required through APIs.
1836      *
1837      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1838      * .value[0].f32: allowed moving distance of a finger, in vp. \n
1839      *
1840      */
1841     NODE_CLICK_DISTANCE = 97,
1842 
1843     /**
1844      * @brief Sets whether the focus can be placed on this component.
1845      * This attribute can be set, reset, and obtained as required through APIs.
1846      *
1847      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1848      * .value[0].i32: whether the focus can be placed on the current component. The parameter type is 1 or 0.
1849      * \n
1850      * Format of the return value {@link ArkUI_AttributeItem}:\n
1851      * .value[0].i32: whether the focus can be placed on the current component. The parameter type is 1 or 0.
1852      *
1853      * @since 14
1854      */
1855     NODE_TAB_STOP = 98,
1856 
1857     /**
1858      * @brief Defines the backdrop blur attribute, which can be set, reset, and obtained as required through APIs.
1859      *
1860      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1861      * .value[0].f32:backdrop blur radius, in px. The value range is [0, +∞).\n
1862      * .value[1]?.f32:grayscale blur settings that control the brightness of the black color.\n
1863      * The value range is [0, 127].\n
1864      * .value[2]?.f32:grayscale blur settings that control the darkness of the white color.\n
1865      * The value range is [0, 127].\n
1866      * \n
1867      * Format of the return value {@link ArkUI_AttributeItem}:\n
1868      * .value[0].f32:backdrop blur radius, in px. The value range is [0, +∞).\n
1869      * .value[1].f32:grayscale blur settings that control the brightness of the black color.\n
1870      * The value range is [0, 127].\n
1871      * .value[2].f32:grayscale blur settings that control the darkness of the white color.\n
1872      * The value range is [0, 127].\n
1873      *
1874      * @since 15
1875      */
1876     NODE_BACKDROP_BLUR = 99,
1877 
1878     /**
1879      * @brief Sets the next focus node.
1880      *
1881      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
1882      * .value[0].i32: focus movement direction, as defined in {@link ArkUI_FocusMove}.
1883      * .object: next focus node. The parameter type is {@link ArkUI_NodeHandle}.\n
1884      * \n
1885      *
1886      * @since 18
1887      */
1888     NODE_NEXT_FOCUS = 101,
1889 
1890     /**
1891      * @brief Sets the parameters for visible area change events.
1892      *
1893      * @note The visible area change callback is not a real-time callback. The actual callback interval may differ from
1894      * the expected interval due to system load and other factors.
1895      * The interval between two visible area change callbacks will not be less than the expected update interval. If the
1896      * provided expected interval is too short, the actual callback interval will be determined by the system load.
1897      * By default, the interval threshold of the visible area change callback includes 0. This means that,
1898      * if the provided threshold is [0.5], the effective threshold will be [0.0, 0.5].
1899      *
1900      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1901      * .object: parameters for visible area change events.
1902      * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
1903      * \n
1904      * Format of the return value {@link ArkUI_AttributeItem}:\n
1905      * .object: parameters for visible area change events.
1906      * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
1907      *
1908      * @since 17
1909      */
1910     NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO = 102,
1911 
1912     /**
1913      * @brief Defines the text content attribute, which can be set, reset, and obtained as required through APIs.
1914      *
1915      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1916      * .string: text content.\n
1917      * \n
1918      * Format of the return value {@link ArkUI_AttributeItem}:\n
1919      * .string: text content.\n
1920      *
1921      */
1922     NODE_TEXT_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
1923     /**
1924      * @brief Defines the font color attribute, which can be set, reset, and obtained as required through APIs.
1925      *
1926      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1927      * .value[0].u32: font color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
1928      * \n
1929      * Format of the return value {@link ArkUI_AttributeItem}:\n
1930       * .value[0].u32: font color value, in 0xARGB format.\n
1931      *
1932      */
1933     NODE_FONT_COLOR,
1934     /**
1935      * @brief Defines the font size attribute, which can be set, reset, and obtained as required through APIs.
1936      *
1937      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1938      * .value[0].f32: font size, in fp.\n
1939      * \n
1940      * Format of the return value {@link ArkUI_AttributeItem}:\n
1941      * .value[0].f32: font size, in fp.\n
1942      *
1943      */
1944     NODE_FONT_SIZE,
1945     /**
1946      * @brief Defines the font style attribute, which can be set, reset, and obtained as required through APIs.
1947      *
1948      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1949      * .value[0].i32: font style {@link ArkUI_FontStyle}. The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
1950      * \n
1951      * Format of the return value {@link ArkUI_AttributeItem}:\n
1952      * .value[0].i32: font style {@link ArkUI_FontStyle}.\n
1953      *
1954      */
1955     NODE_FONT_STYLE,
1956     /**
1957      * @brief Defines the font weight attribute, which can be set, reset, and obtained as required through APIs.
1958      *
1959      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1960      * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
1961      * \n
1962      * Format of the return value {@link ArkUI_AttributeItem}:\n
1963      * .value[0].i32: font weight {@link ArkUI_FontWeight}.\n
1964      *
1965      */
1966     NODE_FONT_WEIGHT,
1967     /**
1968      * @brief Defines the text line height attribute, which can be set, reset, and obtained as required through APIs.
1969      *
1970      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1971      * .value[0].f32: line height, in fp.\n
1972      * \n
1973      * Format of the return value {@link ArkUI_AttributeItem}:\n
1974      * .value[0].f32: line height, in fp.\n
1975      *
1976      */
1977     NODE_TEXT_LINE_HEIGHT,
1978     /**
1979      * @brief Defines the text decoration style and color.
1980      * This attribute can be set, reset, and obtained as required through APIs.
1981      *
1982      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1983      * .value[0].i32: text decoration type {@link ArkUI_TextDecorationType}.
1984      * The default value is <b>ARKUI_TEXT_DECORATION_TYPE_NONE</b>.\n
1985      * .value[1]?.u32: text decoration color, in 0xARGB format. For example, 0xFFFF0000 indicates red. Optional.\n
1986      * .value[2]?.i32: text decoration style {@link ArkUI_TextDecorationStyle}. \n
1987      * \n
1988      * Format of the return value {@link ArkUI_AttributeItem}:\n
1989      * .value[0].i32: text decoration type {@link ArkUI_TextDecorationType}.\n
1990      * .value[1].u32: text decoration color, in 0xARGB format. \n
1991      * .value[2].i32: text decoration style {@link ArkUI_TextDecorationStyle}. \n
1992      *
1993      */
1994     NODE_TEXT_DECORATION,
1995     /**
1996      * @brief Defines the text case attribute, which can be set, reset, and obtained as required through APIs.
1997      *
1998      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1999      * .value[0].i32: text case.\n
2000      * \n
2001      * Format of the return value {@link ArkUI_AttributeItem}:\n
2002      * .value[0].i32: text case.\n
2003      *
2004      */
2005     NODE_TEXT_CASE,
2006     /**
2007      * @brief Defines the letter spacing attribute, which can be set, reset, and obtained as required through APIs.
2008      *
2009      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2010      * .value[0].f32: letter spacing, in fp.\n
2011      * \n
2012      * Format of the return value {@link ArkUI_AttributeItem}:\n
2013      * .value[0].f32: letter spacing, in fp.\n
2014      *
2015      */
2016     NODE_TEXT_LETTER_SPACING,
2017     /**
2018      * @brief Sets the maximum number of lines in the text.
2019      * This attribute can be set, reset, and obtained as required through APIs.
2020      *
2021      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2022      * .value[0].i32: maximum number of lines in the text.\n
2023      * \n
2024      * Format of the return value {@link ArkUI_AttributeItem}:\n
2025      * .value[0].i32: maximum number of lines in the text.\n
2026      *
2027      */
2028     NODE_TEXT_MAX_LINES,
2029     /**
2030      * @brief Horizontal alignment mode of the text.
2031      * This attribute can be set, reset, and obtained as required through APIs.
2032      *
2033      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2034      * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_TextAlignment}. \n
2035      * \n
2036      * Format of the return value {@link ArkUI_AttributeItem}:\n
2037      * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_TextAlignment}. \n
2038      *
2039      */
2040     NODE_TEXT_ALIGN,
2041     /**
2042      * @brief Defines the text overflow attribute, which can be set, reset, and obtained as required through APIs.
2043      *
2044      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2045      * .value[0].i32: display mode when the text is too long. {@ArkUI_TextOverflow}\n
2046      * \n
2047      * Format of the return value {@link ArkUI_AttributeItem}:\n
2048      * .value[0].i32: display mode when the text is too long. {@ArkUI_TextOverflow}\n
2049      *
2050      */
2051     NODE_TEXT_OVERFLOW,
2052     /**
2053      * @brief Defines the font family attribute, which can be set, reset, and obtained as required through APIs.
2054      *
2055      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2056      * .string: fonts, separated by commas (,).
2057      * \n
2058      * Format of the return value {@link ArkUI_AttributeItem}:\n
2059      * .string: fonts, separated by commas (,).
2060      *
2061      */
2062     NODE_FONT_FAMILY,
2063     /**
2064      * @brief Defines the copy option attribute, which can be set, reset, and obtained as required through APIs.
2065      *
2066      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2067      * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The default value is <b>ARKUI_COPY_OPTIONS_NONE</b>.\n
2068      * \n
2069      * Format of the return value {@link ArkUI_AttributeItem}:\n
2070      * .value[0].i32: copy option {@link ArkUI_CopyOptions. \n
2071      *
2072      */
2073     NODE_TEXT_COPY_OPTION,
2074     /**
2075      * @brief Defines the text baseline offset attribute
2076      * This attribute can be set, reset, and obtained as required through APIs.
2077      *
2078      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2079      * .value[0].f32: baseline offset, in fp.\n
2080      * \n
2081      * Format of the return value {@link ArkUI_AttributeItem}:\n
2082      * .value[0].f32: baseline offset, in fp. \n
2083      *
2084      */
2085     NODE_TEXT_BASELINE_OFFSET,
2086     /**
2087      * @brief Defines the text shadow attribute, which can be set, reset, and obtained as required through APIs.
2088      *
2089      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2090      * .value[0].f32: blur radius of the shadow, in vp.\n
2091      * .value[1].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
2092      * .value[2].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
2093      * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
2094      * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
2095      * \n
2096      * Format of the return value {@link ArkUI_AttributeItem}:\n
2097      * .value[0].f32: blur radius of the shadow, in vp.\n
2098      * .value[1].i32: shadow type {@link ArkUI_ShadowType}.\n
2099      * .value[2].u32: shadow color, in 0xARGB format.\n
2100      * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
2101      * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
2102      *
2103      */
2104     NODE_TEXT_TEXT_SHADOW,
2105     /**
2106      * @brief Defines the minimum font size attribute, which can be set, reset, and obtained as required through APIs.
2107      *
2108      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2109      * .value[0].f32: minimum font size, in fp.
2110      * \n
2111      * Format of the return value {@link ArkUI_AttributeItem}:\n
2112      * .value[0].f32: minimum font size, in fp.
2113      *
2114      */
2115     NODE_TEXT_MIN_FONT_SIZE,
2116 
2117     /**
2118      * @brief Defines the maximum font size attribute, which can be set, reset, and obtained as required through APIs.
2119      *
2120      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2121      * .value[0].f32: maximum font size, in fp.
2122      * \n
2123      * Format of the return value {@link ArkUI_AttributeItem}:\n
2124      * .value[0].f32: maximum font size, in fp.
2125      *
2126      */
2127     NODE_TEXT_MAX_FONT_SIZE,
2128 
2129     /**
2130      * @brief Defines the text style attribute, which can be set, reset, and obtained as required through APIs.
2131      *
2132      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2133      * .string?: font family. Optional. Use commas (,) to separate multiple fonts. \n
2134      * .value[0].f32: font size, in fp. \n
2135      * .value[1]?.i32: font weight. Optional. The parameter type is {@link ArkUI_FontWeight}.
2136      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
2137      * .value[2]?.i32: font style. Optional. The parameter type is {@link ArkUI_FontStyle}.
2138      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
2139      * \n
2140      * Format of the return value {@link ArkUI_AttributeItem}:\n
2141      * .string: font family. Use commas (,) to separate multiple fonts. \n
2142      * .value[0].f32: font size, in fp. \n
2143      * .value[1].i32: font weight. The parameter type is {@link ArkUI_FontWeight}.
2144      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
2145      * .value[2].i32: font style. The parameter type is {@link ArkUI_FontStyle}.
2146      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
2147      *
2148      */
2149     NODE_TEXT_FONT,
2150 
2151     /**
2152      * @brief Defines how the adaptive height is determined for the text.
2153      * This attribute can be set, reset, and obtained as required through APIs.
2154      *
2155      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2156      * .value[0].i32: how the adaptive height is determined for the text.
2157      * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}.
2158      * \n
2159      * Format of the return value {@link ArkUI_AttributeItem}:\n
2160      * .value[0].i32: how the adaptive height is determined for the text.
2161      * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}
2162      *
2163      */
2164     NODE_TEXT_HEIGHT_ADAPTIVE_POLICY,
2165     /**
2166      * @brief Defines the indentation of the first line.
2167      * This attribute can be set, reset, and obtained as required through APIs.
2168      *
2169      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2170      * .value[0].f32: indentation of the first line. \n
2171      * \n
2172      * Format of the return value {@link ArkUI_AttributeItem}:\n
2173      * .value[0].f32: indentation of the first line. \n
2174      *
2175      */
2176     NODE_TEXT_INDENT,
2177     /**
2178      * @brief Defines the line break rule. This attribute can be set, reset, and obtained as required through APIs.
2179      *
2180      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2181      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
2182      * \n
2183      * Format of the return value {@link ArkUI_AttributeItem}:\n
2184      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
2185      *
2186      */
2187     NODE_TEXT_WORD_BREAK,
2188     /**
2189      * @brief Defines the ellipsis position. This attribute can be set, reset, and obtained as required through APIs.
2190      *
2191      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2192      * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
2193      * \n
2194      * Format of the return value {@link ArkUI_AttributeItem}:\n
2195      * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
2196      *
2197      */
2198     NODE_TEXT_ELLIPSIS_MODE,
2199     /**
2200      * @brief Defines the text line spacing attribute, which can be set, reset, and obtained as required through APIs.
2201      *
2202      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2203      * .value[0].f32: line spacing, in fp.\n
2204      * \n
2205      * Format of the return value {@link ArkUI_AttributeItem}:\n
2206      * .value[0].f32: line spacing, in fp.\n
2207      *
2208      */
2209     NODE_TEXT_LINE_SPACING,
2210     /**
2211      * @brief  Set the text feature effect and the NODE_FONT_FEATURE attribute,
2212      * NODE_FONT_FEATURE is the advanced typesetting capability of OpenType
2213      * Features such as ligatures and equal-width digits are generally used in customized fonts. \n
2214      * The capabilities need to be supported by the fonts, \n
2215      * Interfaces for setting, resetting, and obtaining attributes are supported. \n
2216      * Attribute setting method parameter {@Link ArkUI_AttributeItem} format: \n
2217      * .string: complies with the text feature format. The format is normal | \n
2218      * is in the format of [ | on | off],\n.
2219      * There can be multiple values separated by commas (,). \n
2220      * For example, the input format of a number with the same width is ss01 on. \n
2221      * \n
2222      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
2223      * .string indicates the content of the text feature. Multiple text features are separated by commas (,). \n
2224      */
2225     NODE_FONT_FEATURE,
2226     /**
2227      * @brief Setting Enable Text Recognition.
2228      *
2229      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2230      * .value[0].i32:Enable text recognition, default value false.\n
2231      * \n
2232      * Format of the return value {@link ArkUI_AttributeItem}:\n
2233      * .value[0].i32:Enable Text Recognition\n
2234      *
2235      */
2236     NODE_TEXT_ENABLE_DATA_DETECTOR,
2237     /**
2238      * @brief Set the text recognition configuration.
2239      *
2240      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2241      * .value[0...].i32: Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}。\n
2242      * \n
2243      * Format of the return value {@link ArkUI_AttributeItem}:\n
2244      * .value[0...].i32:Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}。\n
2245      *
2246      */
2247     NODE_TEXT_ENABLE_DATA_DETECTOR_CONFIG,
2248     /**
2249      * @brief Defines the background color of the selected text.
2250      * This attribute can be set, reset, and obtained as required through APIs.
2251      *
2252      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2253      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2254      * \n
2255      * Format of the return value {@link ArkUI_AttributeItem}:\n
2256      * .value[0].u32: color value, in 0xARGB format. \n
2257      *
2258      */
2259     NODE_TEXT_SELECTED_BACKGROUND_COLOR,
2260 
2261     /**
2262      * @brief The text component uses a formatted string object to set text content properties,
2263      * and supports property setting, property reset, and property acquisition interfaces.
2264      *
2265      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2266      * .object indicates ArkUI_StyledString formatted string data. The parameter type is {@link ArkUI_StyledString}. \n
2267      * \n
2268      * Format of the return value {@link ArkUI_AttributeItem}:\n
2269      * .object indicates ArkUI_StyledString formatted string data. The parameter type is {@link ArkUI_StyledString}. \n
2270      */
2271     NODE_TEXT_CONTENT_WITH_STYLED_STRING,
2272 
2273     /**
2274      * @brief Sets whether to center text vertically in the text component.
2275      *
2276      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2277      * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
2278      * \n
2279      * Format of the return value {@link ArkUI_AttributeItem}:\n
2280      * .value[0].i32: whether to center text vertically. \n
2281      *
2282      */
2283     NODE_TEXT_HALF_LEADING = 1029,
2284 
2285     /**
2286      * @brief Defines the font weight attribute, which can be set, reset, and obtained as required through APIs.
2287      * The font weight specified by this API is not affected by any changes in the system font weight settings.
2288      *
2289      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2290      * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
2291      * \n
2292      * Format of the return value {@link ArkUI_AttributeItem}:\n
2293      * .value[0].i32: font weight {@link ArkUI_FontWeight}.\n
2294      *
2295      * @since 15
2296      */
2297     NODE_IMMUTABLE_FONT_WEIGHT = 1030,
2298 
2299     /**
2300      * @brief Defines the text content attribute, which can be set, reset, and obtained as required through APIs.
2301      *
2302      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2303      * .string: content of the text span. \n
2304      * \n
2305      * Format of the return value {@link ArkUI_AttributeItem}:\n
2306      * .string: content of the text span. \n
2307      *
2308      */
2309     NODE_SPAN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SPAN,
2310     /**
2311      * @brief Defines the text background style.
2312      * This attribute can be set, reset, and obtained as required through APIs.
2313      *
2314      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2315      * .value[0].u32: color of the text background, in 0xARGB format, for example, <b>0xFFFF0000</b> indicating red. \n
2316      * The second parameter indicates the rounded corners of the text background. Two setting modes are available: \n
2317      * 1: .value[1].f32: radius of the four corners, in vp. \n
2318      * 2: .value[1].f32: radius of the upper left corner, in vp. \n
2319      * .value[2].f32: radius of the upper right corner, in vp. \n
2320      * .value[3].f32: radius of the lower left corner, in vp. \n
2321      * .value[4].f32: radius of the lower right corner, in vp. \n
2322      * \n
2323      * Format of the return value {@link ArkUI_AttributeItem}:\n
2324      * .value[0].u32: color of the text background, in 0xARGB format. \n
2325      * .value[1].f32: radius of the upper left corner, in vp. \n
2326      * .value[2].f32: radius of the upper right corner, in vp. \n
2327      * .value[3].f32: radius of the lower left corner, in vp. \n
2328      * .value[4].f32: radius of the lower right corner, in vp. \n
2329      *
2330      */
2331     NODE_SPAN_TEXT_BACKGROUND_STYLE,
2332     /**
2333      * @brief Defines the text baseline offset attribute
2334      * This attribute can be set, reset, and obtained as required through APIs.
2335      *
2336      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2337      * .value[0].f32: baseline offset, in fp.\n
2338      * \n
2339      * Format of the return value {@link ArkUI_AttributeItem}:\n
2340      * .value[0].f32: baseline offset, in fp. \n
2341      *
2342      */
2343     NODE_SPAN_BASELINE_OFFSET,
2344     /**
2345      * @brief Defines the image source of the image span.
2346      * This attribute can be set, reset, and obtained as required through APIs.
2347      *
2348      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2349      * .string: image address of the image span.\n
2350      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
2351      * \n
2352      * Format of the return value {@link ArkUI_AttributeItem}:\n
2353      * .string: image address of the image span.\n
2354      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
2355      *
2356      */
2357     NODE_IMAGE_SPAN_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_SPAN,
2358     /**
2359      * @brief Defines the alignment mode of the image with the text.
2360      * This attribute can be set, reset, and obtained as required through APIs.
2361      *
2362      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2363      * .value[0].i32: alignment mode of the image with the text.
2364      * The value is an enum of {@link ArkUI_ImageSpanAlignment}. \n
2365      * \n
2366      * Format of the return value {@link ArkUI_AttributeItem}:\n
2367      * .value[0].i32: alignment mode of the image with the text.
2368      * The value is an enum of {@link ArkUI_ImageSpanAlignment}. \n
2369      *
2370      */
2371     NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT,
2372     /**
2373      * @brief Defines the placeholder image source.
2374      * This attribute can be set, reset, and obtained as required through APIs.
2375      *
2376      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2377      * .string: placeholder image source. \n
2378      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
2379      * \n
2380      * Format of the return value {@link ArkUI_AttributeItem}:\n
2381      * .string: placeholder image source. \n
2382      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
2383      *
2384      */
2385     NODE_IMAGE_SPAN_ALT,
2386     /**
2387      * @brief Defines the baseline offset attribute of the <b>ImageSpan</b> component.
2388      * This attribute can be set, reset, and obtained as required through APIs.
2389      * A positive value means an upward offset, while a negative value means a downward offset.
2390      * The default value is <b>0</b>, and the unit is fp. \n
2391      *
2392      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2393      * .value[0].f32: baseline offset, in fp.\n
2394      * \n
2395      * Format of the return value {@link ArkUI_AttributeItem}:\n
2396      * .value[0].f32: baseline offset, in fp. \n
2397      *
2398      * @since 13
2399      */
2400     NODE_IMAGE_SPAN_BASELINE_OFFSET = 3003,
2401     /**
2402      * @brief Defines the image source of the <Image> component.
2403      * This attribute can be set, reset, and obtained as required through APIs.
2404      *
2405      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2406      * .string: image source.\n
2407      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
2408      * \n
2409      * Format of the return value {@link ArkUI_AttributeItem}:\n
2410      * .string: image source.\n
2411      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
2412      *
2413      */
2414     NODE_IMAGE_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
2415     /**
2416      * @brief Defines how the image is resized to fit its container.
2417      * This attribute can be set, reset, and obtained as required through APIs.
2418      *
2419      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2420      * .value[0].i32: how the image is resized to fit its container. The value is an enum of {@link ArkUI_ObjectFit}. \n
2421      * \n
2422      * Format of the return value {@link ArkUI_AttributeItem}:\n
2423      * .value[0].i32: how the image is resized to fit its container. The value is an enum of {@link ArkUI_ObjectFit}. \n
2424      *
2425      */
2426     NODE_IMAGE_OBJECT_FIT,
2427     /**
2428      * @brief Defines the interpolation effect of the image.
2429      * This attribute can be set, reset, and obtained as required through APIs.
2430      *
2431      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2432      * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
2433      * \n
2434      * Format of the return value {@link ArkUI_AttributeItem}:\n
2435      * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
2436      *
2437      */
2438     NODE_IMAGE_INTERPOLATION,
2439     /**
2440      * @brief Defines how the image is repeated.
2441      * This attribute can be set, reset, and obtained as required through APIs.
2442      *
2443      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2444      * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
2445      * \n
2446      * Format of the return value {@link ArkUI_AttributeItem}:\n
2447      * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
2448      *
2449      */
2450     NODE_IMAGE_OBJECT_REPEAT,
2451     /**
2452      * @brief Defines the color filter of the image.
2453      * This attribute can be set, reset, and obtained as required through APIs.
2454      *
2455      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2456      * .value[0].f32 to .value[19].f32: filter matrix array. \n
2457      * .size: 5 x 4 filter array size. \n
2458      * .object: the pointer to OH_Drawing_ColorFilter. Either .value or .object is set. \n
2459      * \n
2460      * Format of the return value {@link ArkUI_AttributeItem}:\n
2461      * .value[0].f32 to .value[19].f32: filter matrix array. \n
2462      * .size: 5 x 4 filter array size. \n
2463      * .object: the pointer to OH_Drawing_ColorFilter. \n
2464      *
2465      */
2466     NODE_IMAGE_COLOR_FILTER,
2467     /**
2468      * @brief Defines the auto resize attribute, which can be set, reset, and obtained as required through APIs.
2469      *
2470      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2471      * .value[0].i32 : whether to resize the image source. \n
2472      * \n
2473      * Format of the return value {@link ArkUI_AttributeItem}:\n
2474      * .value[0].i32 : whether to resize the image source. \n
2475      *
2476      */
2477     NODE_IMAGE_AUTO_RESIZE,
2478     /**
2479      * @brief Defines the placeholder image source.
2480      * This attribute can be set, reset, and obtained as required through APIs.
2481      *
2482      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2483      * .string: placeholder image source. \n
2484      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
2485      * \n
2486      * Format of the return value {@link ArkUI_AttributeItem}:\n
2487      * .string: placeholder image source. \n
2488      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
2489      *
2490      */
2491     NODE_IMAGE_ALT,
2492     /**
2493      * @brief Defines whether the image is draggable.
2494      * This attribute can be set, reset, and obtained as required through APIs.
2495      *
2496      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2497      * .value[0].i32: whether the image is draggable. The value <b>true</b> means that the image is draggable. \n
2498      * \n
2499      * Format of the return value {@link ArkUI_AttributeItem}:\n
2500      * .value[0].i32: whether the image is draggable. \n
2501      *
2502      */
2503     NODE_IMAGE_DRAGGABLE,
2504     /**
2505      * @brief Defines the image rendering mode. This attribute can be set, reset, and obtained as required through APIs.
2506      *
2507      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2508      * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
2509      * \n
2510      * Format of the return value {@link ArkUI_AttributeItem}:\n
2511      * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
2512      *
2513      */
2514     NODE_IMAGE_RENDER_MODE,
2515     /**
2516      * @brief Defines whether the image display size follows the image source size.
2517      * This attribute can be set, reset, and obtained as required through APIs.
2518      *
2519      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2520      * .value[0].i32: wheter to follow, true means to follow.\n
2521      * \n
2522      * Format of the return value {@link ArkUI_AttributeItem}:\n
2523      * .value[0].i32: wheter to follow, true means to follow.\n
2524      *
2525      */
2526     NODE_IMAGE_FIT_ORIGINAL_SIZE,
2527     /**
2528      * @brief Defines the fill color of the swiper.
2529      * This attribute can be set, reset, and obtained as required through APIs.
2530      *
2531      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2532      * .value[0].u32: fill color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2533      * \n
2534      * Format of the return value {@link ArkUI_AttributeItem}:\n
2535      * .value[0].u32: fill color, in 0xARGB format. \n
2536      *
2537      */
2538     NODE_IMAGE_FILL_COLOR,
2539     /**
2540      * @brief Sets the resizable image options.
2541      *
2542      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2543      * .value[0].f32: width of the left edge. The unit is vp. \n
2544      * .value[1].f32: width of the top edge. The unit is vp. \n
2545      * .value[2].f32: width of the right edge. The unit is vp. \n
2546      * .value[3].f32: width of the bottom edge. The unit is vp. \n
2547      * \n
2548      * Format of the return value {@link ArkUI_AttributeItem}:\n
2549      * .value[0].f32: width of the left edge. The unit is vp. \n
2550      * .value[1].f32: width of the top edge. The unit is vp. \n
2551      * .value[2].f32: width of the right edge. The unit is vp. \n
2552      * .value[3].f32: width of the bottom edge. The unit is vp. \n
2553      *
2554      */
2555     NODE_IMAGE_RESIZABLE,
2556     /**
2557      * @brief Defines the color of the component when it is selected.
2558      * This attribute can be set, reset, and obtained as required through APIs.
2559      *
2560      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2561      * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2562      * \n
2563      * Format of the return value {@link ArkUI_AttributeItem}:\n
2564      * .value[0].u32: background color, in 0xARGB format. \n
2565      *
2566      */
2567     NODE_TOGGLE_SELECTED_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
2568     /**
2569      * @brief Defines the color of the circular slider for the component of the switch type.
2570      * This attribute can be set, reset, and obtained as required through APIs.
2571      *
2572      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2573      * .value[0].u32: color of the circular slider, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2574      * \n
2575      * Format of the return value {@link ArkUI_AttributeItem}:\n
2576      * .value[0].u32: color of the circular slider, in 0xARGB format. \n
2577      *
2578      */
2579     NODE_TOGGLE_SWITCH_POINT_COLOR,
2580     /**
2581      * @brief Defines the toggle switch value. This attribute can be set, reset, and obtained as required through APIs.
2582      *
2583      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2584      * .value[0].i32: whether to enable the toggle. The value <b>true</b> means to enable the toggle. \n
2585      * \n
2586      * Format of the return value {@link ArkUI_AttributeItem}:\n
2587      * .value[0].i32: whether to enable the toggle. \n
2588      *
2589      */
2590     NODE_TOGGLE_VALUE,
2591 
2592     /**
2593      * @brief Defines the color of the component when it is deselected.
2594      * This attribute can be set, reset, and obtained as required through APIs.
2595      *
2596      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2597      *.value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2598      * \n
2599      * Format of the return value {@link ArkUI_AttributeItem}:\n
2600      * .value[0].u32: background color, in 0xARGB format. \n
2601      *
2602      */
2603     NODE_TOGGLE_UNSELECTED_COLOR,
2604 
2605     /**
2606      * @brief Defines the foreground color of the loading progress bar.
2607      * This attribute can be set, reset, and obtained as required through APIs.
2608      *
2609      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2610      * .value[0].u32: foreground color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2611      * \n
2612      * Format of the return value {@link ArkUI_AttributeItem}:\n
2613      * .value[0].u32: foreground color, in 0xARGB format. \n
2614      *
2615      */
2616     NODE_LOADING_PROGRESS_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LOADING_PROGRESS,
2617     /**
2618      * @brief Defines whether to show the loading animation for the <LoadingProgress> component.
2619      * This attribute can be set, reset, and obtained as required through APIs.
2620      *
2621      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2622      * .value[0].i32: whether to show the loading animation.
2623      * The value <b>true</b> means to show the loading animation, and <b>false</b> means the opposite.\n
2624      * \n
2625      * Format of the return value {@link ArkUI_AttributeItem}:\n
2626      * .value[0].i32: The value <b>1</b> means to show the loading animation, and <b>0</b> means the opposite. \n
2627      *
2628      */
2629     NODE_LOADING_PROGRESS_ENABLE_LOADING,
2630 
2631     /**
2632      * @brief Defines the default placeholder text of the single-line text box.
2633      * This attribute can be set, reset, and obtained as required through APIs.
2634      *
2635      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2636      * .string: default placeholder text. \n
2637      * \n
2638      * Format of the return value {@link ArkUI_AttributeItem}:\n
2639      * .string: default placeholder text. \n
2640      *
2641      */
2642     NODE_TEXT_INPUT_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
2643     /**
2644      * @brief Defines the default text content of the single-line text box.
2645      * This attribute can be set, reset, and obtained as required through APIs.
2646      *
2647      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2648      * .string: default text content. \n
2649      * \n
2650      * Format of the return value {@link ArkUI_AttributeItem}:\n
2651      * .string: default text content. \n
2652      *
2653      */
2654     NODE_TEXT_INPUT_TEXT,
2655     /**
2656      * @brief Defines the caret color attribute.
2657      * This attribute can be set, reset, and obtained as required through APIs.
2658      *
2659      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2660      * .value[0].u32: caret color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
2661      * \n
2662      * Format of the return value {@link ArkUI_AttributeItem}:\n
2663      * .value[0].u32: caret color, in 0xARGB format. \n
2664      *
2665      */
2666     NODE_TEXT_INPUT_CARET_COLOR,
2667     /**
2668      * @brief Defines the caret style attribute.
2669      * This attribute can be set, reset, and obtained as required through APIs.
2670      *
2671      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2672      * .value[0].f32: caret width, in vp.\n
2673      * \n
2674      * Format of the return value {@link ArkUI_AttributeItem}:\n
2675      * .value[0].f32: caret width, in vp. \n
2676      *
2677      */
2678     NODE_TEXT_INPUT_CARET_STYLE,
2679     /**
2680      * @brief Defines the underline attribute of the single-line text box.
2681      * This attribute can be set, reset, and obtained as required through APIs.
2682      *
2683      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2684      * .value[0].i32: whether to show an underline.
2685      * The value <b>true</b> means to show an underline, and <b>false</b> means the opposite.\n
2686      * \n
2687      * Format of the return value {@link ArkUI_AttributeItem}:\n
2688      * .value[0].i32: The value <b>1</b> means to show an underline, and <b>0</b> means the opposite. \n
2689      *
2690      */
2691     NODE_TEXT_INPUT_SHOW_UNDERLINE,
2692     /**
2693      * @brief Defines the maximum number of characters in the text input.
2694      * This attribute can be set, reset, and obtained as required through APIs.
2695      *
2696      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2697      * .value[0].i32: maximum number of characters in the text input, without a unit. \n
2698      * \n
2699      * Format of the return value {@link ArkUI_AttributeItem}:\n
2700      * .value[0].i32: maximum number of characters in the text input. \n
2701      *
2702      */
2703     NODE_TEXT_INPUT_MAX_LENGTH,
2704     /**
2705      * @brief Defines the type of the Enter key.
2706      * This attribute can be set, reset, and obtained as required through APIs.
2707      *
2708      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2709      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
2710      * \n
2711      * Format of the return value {@link ArkUI_AttributeItem}:\n
2712      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
2713      *
2714      */
2715     NODE_TEXT_INPUT_ENTER_KEY_TYPE,
2716     /**
2717      * @brief Defines the placeholder text color.
2718      * This attribute can be set, reset, and obtained as required through APIs.
2719      *
2720      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2721      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2722      * \n
2723      * Format of the return value {@link ArkUI_AttributeItem}:\n
2724      * .value[0].u32: color value, in 0xARGB format. \n
2725      *
2726      */
2727     NODE_TEXT_INPUT_PLACEHOLDER_COLOR,
2728     /**
2729      * @brief Defines the placeholder text font.
2730      * This attribute can be set, reset, and obtained as required through APIs.
2731      *
2732      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2733      * .value[0]?.f32: font size, in fp. Optional. The default value is <b>16.0</b>.\n
2734      * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optional.
2735      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>. \n
2736      * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional.
2737      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
2738      * ?.string: font family. Multiple font families are separated by commas (,).
2739      * Example: "font weight; font family 1, font family 2". \n
2740      * \n
2741      * Format of the return value {@link ArkUI_AttributeItem}:\n
2742      * .value[0].f32: font size, in fp.\n
2743      * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
2744      * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
2745      * .string: font family. Multiple font families are separated by commas (,). \n
2746      *
2747      */
2748     NODE_TEXT_INPUT_PLACEHOLDER_FONT,
2749     /**
2750      * @brief Defines whether to enable the input method when the component obtains focus.
2751      * This attribute can be set, reset, and obtained as required through APIs.
2752      *
2753      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2754      * .value[0].i32: whether to enable the input method when the component obtains focus.
2755      * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
2756      * \n
2757      * Format of the return value {@link ArkUI_AttributeItem}:\n
2758       * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
2759       * and <b>0</b> means the opposite. \n
2760      *
2761      */
2762     NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS,
2763     /**
2764      * @brief Defines the text box type. 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      * .value[0].i32: text box type {@link ArkUI_TextInputType}.
2768      * The default value is <b>ARKUI_TEXTINPUT_TYPE_NORMAL</b>. \n
2769      * \n
2770      * Format of the return value {@link ArkUI_AttributeItem}:\n
2771      * .value[0].i32: text box type {@link ArkUI_TextInputType}. \n
2772      *
2773      */
2774     NODE_TEXT_INPUT_TYPE,
2775     /**
2776      * @brief Defines the background color of the selected text.
2777      * This attribute can be set, reset, and obtained as required through APIs.
2778      *
2779      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2780      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2781      * \n
2782      * Format of the return value {@link ArkUI_AttributeItem}:\n
2783      * .value[0].u32: color value, in 0xARGB format. \n
2784      *
2785      */
2786     NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR,
2787     /**
2788      * @brief Defines whether to display the password icon at the end of the password text box.
2789      * This attribute can be set, reset, and obtained as required through APIs.
2790      *
2791      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2792      * .value[0].i32: whether to display the password icon at the end of the password text box.
2793      * The value <b>true</b> means to display the password icon, and <b>false</b> means the opposite.\n
2794      * \n
2795      * Format of the return value {@link ArkUI_AttributeItem}:\n
2796      * .value[0].i32: The value <b>1</b> means to display the password icon at the end of the password text box,
2797      * and <b>0</b> means the opposite. \n
2798      *
2799      */
2800     NODE_TEXT_INPUT_SHOW_PASSWORD_ICON,
2801     /**
2802      * @brief Defines the editable state for the single-line text box.
2803      * This attribute can be set as required through APIs.
2804      *
2805      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
2806      * .value[0].i32: whether to remain in the editable state. The value
2807      * <b>true</b> means to remain in the editable state, and <b>false</b> means to exit the editable state. \n
2808      * \n
2809      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
2810      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
2811      * state, and <b>false</b> means to exit the editable state. \n
2812      *
2813      */
2814     NODE_TEXT_INPUT_EDITING,
2815     /**
2816      * @brief Defines the style of the cancel button on the right of the single-line text box.
2817      * This attribute can be set, reset, and obtained as required through APIs.
2818      *
2819      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
2820      * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.
2821      * The default value is <b>ARKUI_CANCELBUTTON_STYLE_INPUT</b>.\n
2822      * .value[1]?.f32: button icon size, in vp.\n
2823      * .value[2]?.u32: button icon color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2824      * ?.string: button icon image source. The value is the local address of the image, for example, /pages/icon.png. \n
2825      * \n
2826      * Format of the return value {@link ArkUI_AttributeItem}:\n
2827      * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.\n
2828      * .value[1].f32: icon size, in vp.\n
2829      * .value[2].u32: button icon color, in 0xARGB format.\n
2830      * .string: button icon image source. \n
2831      *
2832      */
2833     NODE_TEXT_INPUT_CANCEL_BUTTON,
2834     /**
2835      * @brief Sets the text selection area, which will be highlighted.
2836      * This attribute can be set, reset, and obtained as required through APIs.
2837      *
2838      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2839      * .value[0].i32: start position of the text selection. \n
2840      * .value[1].i32: end position of the text selection. \n
2841      * \n
2842      * Format of the return value {@link ArkUI_AttributeItem}:\n
2843      * .value[0].i32: start position of the text selection. \n
2844      * .value[1].i32: end position of the text selection. \n
2845      *
2846      */
2847     NODE_TEXT_INPUT_TEXT_SELECTION,
2848     /**
2849     * @brief Sets the color of the text underline when it is enabled.
2850     *
2851     * The default underline color configured for the theme is <b>'0x33182431'</b>.
2852     *
2853     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2854     * .value[0].u32: color of the underline applied to the text being typed in.
2855     * The value is in 0xARGB format. \n
2856     * .value[1].u32: color of the underline applied to the text in the normal state.
2857     * The value is in 0xARGB format. \n
2858     * .value[2].u32: color of the underline applied to the text when an error is detected.
2859     * The value is in 0xARGB format. \n
2860     * .value[3].u32: color of the underline applied to the text when it is disabled.
2861     * The value is in 0xARGB format. \n
2862     * \n
2863     * Format of the return value {@link ArkUI_AttributeItem}:\n
2864     * .value[0].u32: color of the underline applied to the text being typed in. The value is in 0xARGB format. \n
2865     * .value[1].u32: color of the underline applied to the text in the normal state. The value is in 0xARGB format. \n
2866     * .value[2].u32: color of the underline applied to the text when an error is detected.
2867     * The value is in 0xARGB format. \n
2868     * .value[3].u32: color of the underline applied to the text when it is disabled. The value is in 0xARGB format. \n
2869     *
2870     */
2871     NODE_TEXT_INPUT_UNDERLINE_COLOR,
2872     /**
2873     * @brief Sets whether to enable autofill.
2874     *
2875     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2876     * .value[0].i32: whether to enable autofill. The default value is <b>true</b>. \n
2877     * \n
2878     * Format of the return value {@link ArkUI_AttributeItem}:\n
2879     * .value[0].i32: whether to enable autofill. \n
2880     *
2881     */
2882     NODE_TEXT_INPUT_ENABLE_AUTO_FILL,
2883     /**
2884     * @brief Sets the autofill type.
2885     *
2886     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2887     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
2888     * \n
2889     * Format of the return value {@link ArkUI_AttributeItem}:\n
2890     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
2891     *
2892     */
2893     NODE_TEXT_INPUT_CONTENT_TYPE,
2894     /**
2895     * @brief Defines the rules for generating passwords. When autofill is used, these rules are transparently
2896     * transmitted to Password Vault for generating a new password.
2897     *
2898     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2899     * .string: rules for generating passwords. \n
2900     * \n
2901     * Format of the return value {@link ArkUI_AttributeItem}:\n
2902     * .string: rules for generating passwords. \n
2903     *
2904     */
2905     NODE_TEXT_INPUT_PASSWORD_RULES,
2906     /**
2907     * @brief Sets whether to select all text in the initial state. The inline mode is not supported.
2908     *
2909     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2910     * .value[0].i32: whether to select all text in the initial state. The default value is b>false</b>. \n
2911     * \n
2912     * Format of the return value {@link ArkUI_AttributeItem}:\n
2913     * .value[0].i32: whether to select all text in the initial state. \n
2914     *
2915     */
2916     NODE_TEXT_INPUT_SELECT_ALL,
2917     /**
2918     * @brief Sets the regular expression for input filtering.
2919     * Only inputs that comply with the regular expression can be displayed.
2920     * Other inputs are filtered out. The specified regular expression can match single characters,
2921     * but not strings.
2922     *
2923     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2924     * .string: regular expression. \n
2925     * \n
2926     * Format of the return value {@link ArkUI_AttributeItem}:\n
2927     * .string: regular expression. \n
2928     *
2929     */
2930     NODE_TEXT_INPUT_INPUT_FILTER,
2931     /**
2932     * @brief Sets the text box to the default style or inline input style.
2933     *
2934     * For the inline input style, only <b>InputType.Normal</b> is supported.
2935     *
2936     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2937     * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
2938     * \n
2939     * Format of the return value {@link ArkUI_AttributeItem}:\n
2940     * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
2941     *
2942     */
2943     NODE_TEXT_INPUT_STYLE,
2944     /**
2945     * @brief Sets or obtains the caret position.
2946     *
2947     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2948     * In the case of setting the caret position:
2949     * .value[0].i32: character count from the beginning of a string to the caret position. \n
2950     *
2951     * Format of the return value {@link ArkUI_AttributeItem}:\n
2952     * In the case of obtaining the caret position: If this API is called when the caret position is updated in the
2953     * current frame, it will not take effect.
2954     * .value[0].i32: index of the caret position. \n
2955     * .value[1].f32: X coordinate of the caret relative to the text box. \n
2956     * .value[2].f32: Y coordinate of the caret relative to the text box. \n
2957     */
2958     NODE_TEXT_INPUT_CARET_OFFSET,
2959     /**
2960     * @brief Obtains the position of the edited text area relative to the component and its size.
2961     *
2962     * Format of the return value {@link ArkUI_AttributeItem}:\n
2963     * .value[0].f32: horizontal coordinate. \n
2964     * .value[1].f32: vertical coordinate. \n
2965     * .value[2].f32: content width. \n
2966     * .value[3].f32: content height. \n
2967     *
2968     */
2969     NODE_TEXT_INPUT_CONTENT_RECT,
2970     /**
2971     * @brief Obtains the number of lines of the edited text.
2972     *
2973     * Format of the return value {@link ArkUI_AttributeItem}:\n
2974     * .value[0].i32: number of lines of the edited text. \n
2975     *
2976     */
2977     NODE_TEXT_INPUT_CONTENT_LINE_COUNT,
2978     /**
2979      * @brief Sets whether to hide the text selection menu when the text box is long-pressed, double-click, or
2980      * right-clicked. This attribute can be set, reset, and obtained as required through APIs.
2981      *
2982      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2983      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
2984      * right-clicked. The default value is <b>false</b>. \n
2985      * \n
2986      * Format of the return value {@link ArkUI_AttributeItem}:\n
2987      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
2988      * right-clicked. \n
2989      *
2990      */
2991     NODE_TEXT_INPUT_SELECTION_MENU_HIDDEN,
2992     /**
2993      * @brief Sets whether the text box loses focus after the Enter key is pressed to submit information.
2994      *
2995      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2996      * .value[0].i32: whether the text box loses focus. \n
2997      * \n
2998      * Format of the return value {@link ArkUI_AttributeItem}:\n
2999      * .value[0].i32: whether the text box loses focus. \n
3000      *
3001      */
3002     NODE_TEXT_INPUT_BLUR_ON_SUBMIT,
3003     /**
3004      * @brief Set up a custom keyboard.
3005      *
3006      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3007      * .object:custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
3008      * .value[0]?.i32:Sets whether the custom keyboard supports the avoidance feature, default value false.\n
3009      * \n
3010      * Format of the return value {@link ArkUI_AttributeItem}:\n
3011      * .object:custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
3012      * .value[0].i32:Set whether the custom keyboard supports the avoidance function.\n
3013      *
3014      */
3015     NODE_TEXT_INPUT_CUSTOM_KEYBOARD,
3016     /**
3017      * @brief Defines the line break rule. This attribute can be set, reset, and obtained as required through APIs.
3018      *
3019      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3020      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
3021      * \n
3022      * Format of the return value {@link ArkUI_AttributeItem}:\n
3023      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
3024      *
3025      */
3026     NODE_TEXT_INPUT_WORD_BREAK,
3027 
3028     /**
3029      * @brief Sets whether the keyboard pops up when the input box gains focus.
3030      * It supports property setting, property reset and property acquisition interfaces.
3031      *
3032      * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
3033      * .value[0].i32: Whether to pop up the keyboard. \n
3034      * \n
3035      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
3036      * .value[0].i32: Whether to pop up the keyboard. \n
3037      *
3038      */
3039     NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS,
3040 
3041     /**
3042      * @brief When this property is set, the height of the textInput component is calculated using this property.
3043      *
3044      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3045      * .value[0].i32: set the value of numberOfLines.\n
3046      * \n
3047      * Format of the return value {@link ArkUI_AttributeItem}:\n
3048      * .value[0].i32: the value of numberOfLines.\n
3049      *
3050      */
3051     NODE_TEXT_INPUT_NUMBER_OF_LINES,
3052 
3053     /**
3054      * @brief Sets the letter spacing of the <b>TextInput</b> component.
3055      * This attribute can be set, reset, and obtained as required through APIs.
3056      *
3057      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3058      * .value[0].f32: letter spacing. The default unit is fp. \n
3059      * \n
3060      * Format of the return value {@link ArkUI_AttributeItem}:\n
3061      * .value[0].f32: letter spacing. The default unit is fp. \n
3062      *
3063      * @since 15
3064      */
3065     NODE_TEXT_INPUT_LETTER_SPACING = 7032,
3066     /**
3067      * @brief Sets whether to enable preview text for the <b>TextInput</b> component.
3068      * This attribute can be set, reset, and obtained as required through APIs.
3069      *
3070      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3071      * .value[0].i32: whether to enable preview tex. \n
3072      * \n
3073      * Format of the return value {@link ArkUI_AttributeItem}:\n
3074      * .value[0].i32: whether to enable preview tex. \n
3075      *
3076      * @since 15
3077      */
3078     NODE_TEXT_INPUT_ENABLE_PREVIEW_TEXT = 7033,
3079 
3080     /**
3081      * @brief Sets whether to center text vertically in the textInput component.
3082      *
3083      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3084      * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
3085      * \n
3086      * Format of the return value {@link ArkUI_AttributeItem}:\n
3087      * .value[0].i32: whether to center text vertically. \n
3088      *
3089      * @since 18
3090      */
3091     NODE_TEXT_INPUT_HALF_LEADING = 7034,
3092 
3093     /**
3094     * @brief Set the keyboard style of textInput
3095     *
3096     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3097     * .value[0].i32:keyboard style,the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
3098     * \n
3099     * Format of the return value {@link ArkUI_AttributeItem}:\n
3100     * .value[0].i32:keyboard style,the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
3101     *
3102     * @since 15
3103     */
3104     NODE_TEXT_INPUT_KEYBOARD_APPEARANCE = 7035,
3105 
3106     /**
3107      * @brief Defines the default placeholder text for the multi-line text box.
3108      * This attribute can be set, reset, and obtained as required through APIs.
3109      *
3110      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3111      * .string: default placeholder text. \n
3112      * \n
3113      * Format of the return value {@link ArkUI_AttributeItem}:\n
3114      * .string: default placeholder text. \n
3115      *
3116      */
3117     NODE_TEXT_AREA_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
3118     /**
3119      * @brief Defines the default text content for the multi-line text box.
3120      * This attribute can be set, reset, and obtained as required through APIs.
3121      *
3122      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3123      * .string: default text content. \n
3124      * \n
3125      * Format of the return value {@link ArkUI_AttributeItem}:\n
3126      * .string: default text content. \n
3127      *
3128      */
3129     NODE_TEXT_AREA_TEXT,
3130     /**
3131      * @brief Defines the maximum number of characters in the text input.
3132      * This attribute can be set, reset, and obtained as required through APIs.
3133      *
3134      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3135      * .value[0].i32: maximum number of characters in the text input. \n
3136      * \n
3137      * Format of the return value {@link ArkUI_AttributeItem}:\n
3138      * .value[0].i32: maximum number of characters in the text input. \n
3139      *
3140      */
3141     NODE_TEXT_AREA_MAX_LENGTH,
3142     /**
3143      * @brief Defines the placeholder text color.
3144      * This attribute can be set, reset, and obtained as required through APIs.
3145      *
3146      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3147      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3148      * \n
3149      * Format of the return value {@link ArkUI_AttributeItem}:\n
3150      * .value[0].u32: color value, in 0xARGB format. \n
3151      *
3152      */
3153     NODE_TEXT_AREA_PLACEHOLDER_COLOR,
3154     /**
3155      * @brief Defines the placeholder text font.
3156      * This attribute can be set, reset, and obtained as required through APIs.
3157      *
3158      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3159      * .value[0]?.f32: font size, in fp. Optional. The default value is <b>16.0</b>.\n
3160      * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optional. The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
3161      * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
3162      * ?.string: font family. Multiple font families are separated by commas (,). For example, "font weight; font family 1, font family 2". \n
3163      * \n
3164      * Format of the return value {@link ArkUI_AttributeItem}:\n
3165      * .value[0].f32: font size, in fp.\n
3166      * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
3167      * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
3168      * .string: font family. Multiple font families are separated by commas (,). \n
3169      *
3170      */
3171     NODE_TEXT_AREA_PLACEHOLDER_FONT,
3172     /**
3173      * @brief Defines the caret color attribute.
3174      * This attribute can be set, reset, and obtained as required through APIs.
3175      *
3176      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3177      * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3178      * \n
3179      * Format of the return value {@link ArkUI_AttributeItem}:\n
3180      * .value[0].u32: background color, in 0xARGB format. \n
3181      *
3182      */
3183     NODE_TEXT_AREA_CARET_COLOR,
3184     /**
3185      * @brief Defines the editable state for the multi-line text box.
3186      * This attribute can be set as required through APIs.
3187      *
3188      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3189      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the
3190      * editable state, and <b>false</b> means to exit the editable state.\n \n
3191      * \n
3192      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
3193      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
3194      * state, and <b>false</b> means to exit the editable state.\n \n
3195      *
3196      */
3197     NODE_TEXT_AREA_EDITING,
3198     /**
3199      * @brief Defines the text box type. This attribute can be set, reset, and obtained as required through APIs.
3200      *
3201      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3202      * .value[0].i32: text box type {@link ArkUI_TextAreaType}.
3203      * The default value is <b>ARKUI_TEXTAREA_TYPE_NORMAL</b>. \n
3204      * \n
3205      * Format of the return value {@link ArkUI_AttributeItem}:\n
3206      * .value[0].i32: text box type {@link ArkUI_TextAreaType}. \n
3207      *
3208      */
3209     NODE_TEXT_AREA_TYPE,
3210     /**
3211      * @brief Defines the counter settings. This attribute can be set, reset, and obtained as required through APIs.
3212      *
3213      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3214      * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
3215      * .value[1]?.f32: threshold percentage for displaying the character counter. The character counter is displayed
3216      * when the number of characters that have been entered is greater than the maximum number of characters multiplied
3217      * by the threshold percentage value. The value range is 1 to 100. If the value is a decimal, it is rounded down. \n
3218      * .value[2]?.i32: whether to highlight the border when the number of entered characters reaches the maximum. \n
3219      * \n
3220      * Format of the return value {@link ArkUI_AttributeItem}:\n
3221      * .value[0].i32: whether to show a character counter. \n
3222      * .value[1].f32: threshold percentage for displaying the character counter. The character counter is displayed
3223      * when the number of characters that have been entered is greater than the maximum number of characters multiplied
3224      * by the threshold percentage value. The value range is 1 to 100. \n
3225      * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
3226      * The default value is <b>true</b>. \n
3227      *
3228      */
3229     NODE_TEXT_AREA_SHOW_COUNTER,
3230     /**
3231      * @brief Sets whether to hide the text selection menu when the text box is long-pressed, double-click,
3232      * or right-clicked. This attribute can be set, reset, and obtained as required through APIs.
3233      *
3234      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3235      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
3236      * or right-clicked. The default value is <b>false</b>. \n
3237      * \n
3238      * Format of the return value {@link ArkUI_AttributeItem}:\n
3239      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
3240      * or right-clicked. \n
3241      *
3242      */
3243     NODE_TEXT_AREA_SELECTION_MENU_HIDDEN,
3244     /**
3245      * @brief Sets whether the multi-line text box loses focus after the Enter key is pressed to submit information.
3246      *
3247      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3248      * .value[0].i32: whether the text box loses focus. \n
3249      * \n
3250      * Format of the return value {@link ArkUI_AttributeItem}:\n
3251      * .value[0].i32: whether the text box loses focus. \n
3252      *
3253      */
3254     NODE_TEXT_AREA_BLUR_ON_SUBMIT,
3255     /**
3256      * @brief Sets the regular expression for input filtering.
3257      * Only inputs that comply with the regular expression can be displayed.
3258      * Other inputs are filtered out. The specified regular expression can match single characters,
3259      * but not strings.
3260      *
3261      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3262      * .string: regular expression. \n
3263      * \n
3264      * Format of the return value {@link ArkUI_AttributeItem}:\n
3265      * .string: regular expression. \n
3266      *
3267      */
3268     NODE_TEXT_AREA_INPUT_FILTER,
3269     /**
3270      * @brief Defines the background color of the selected text.
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      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3275      * \n
3276      * Format of the return value {@link ArkUI_AttributeItem}:\n
3277      * .value[0].u32: color value, in 0xARGB format. \n
3278      *
3279      */
3280     NODE_TEXT_AREA_SELECTED_BACKGROUND_COLOR,
3281     /**
3282      * @brief Defines the type of the Enter key.
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      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
3287      * \n
3288      * Format of the return value {@link ArkUI_AttributeItem}:\n
3289      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
3290      *
3291      */
3292     NODE_TEXT_AREA_ENTER_KEY_TYPE,
3293     /**
3294      * @brief Defines whether to enable the input method when the component obtains focus.
3295      * This attribute can be set, reset, and obtained as required through APIs.
3296      *
3297      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3298      * .value[0].i32: whether to enable the input method when the component obtains focus.
3299      * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
3300      * \n
3301      * Format of the return value {@link ArkUI_AttributeItem}:\n
3302      * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
3303      * and <b>0</b> means the opposite. \n
3304      *
3305      */
3306     NODE_TEXT_AREA_ENABLE_KEYBOARD_ON_FOCUS,
3307     /**
3308      * @brief Defines whether to enable the input method when the component obtains focus.
3309      * This attribute can be set, reset, and obtained as required through APIs.
3310      *
3311      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3312      * .value[0].i32: whether to enable the input method when the component obtains focus.
3313      * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
3314      * \n
3315      * Format of the return value {@link ArkUI_AttributeItem}:\n
3316      * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
3317      * and <b>0</b> means the opposite. \n
3318      *
3319      */
3320     NODE_TEXT_AREA_CARET_OFFSET,
3321     /**
3322      * @brief Obtains the position of the edited text area relative to the component and its size.
3323      *
3324      * Format of the return value {@link ArkUI_AttributeItem}:\n
3325      * .value[0].f32: horizontal coordinate. \n
3326      * .value[1].f32: vertical coordinate. \n
3327      * .value[2].f32: content width. \n
3328      * .value[3].f32: content height. \n
3329      *
3330      */
3331     NODE_TEXT_AREA_CONTENT_RECT,
3332     /**
3333      * @brief Obtains the number of lines of the edited text.
3334      *
3335      * Format of the return value {@link ArkUI_AttributeItem}:\n
3336      * .value[0].i32: number of lines of the edited text. \n
3337      *
3338      */
3339     NODE_TEXT_AREA_CONTENT_LINE_COUNT,
3340     /**
3341      * @brief Sets the text selection area, which will be highlighted.
3342      * This attribute can be set, reset, and obtained as required through APIs.
3343      *
3344      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3345      * .value[0].i32: start position of the text selection. \n
3346      * .value[1].i32: end position of the text selection. \n
3347      * \n
3348      * Format of the return value {@link ArkUI_AttributeItem}:\n
3349      * .value[0].i32: start position of the text selection. \n
3350      * .value[1].i32: end position of the text selection. \n
3351      *
3352      */
3353     NODE_TEXT_AREA_TEXT_SELECTION,
3354     /**
3355      * @brief Sets whether to enable autofill.
3356      *
3357      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3358      * .value[0].i32: whether to enable autofill. The default value is <b>true</b>. \n
3359      * \n
3360      * Format of the return value {@link ArkUI_AttributeItem}:\n
3361      * .value[0].i32: whether to enable autofill. \n
3362      *
3363      */
3364     NODE_TEXT_AREA_ENABLE_AUTO_FILL,
3365     /**
3366      * @brief Sets the autofill type.
3367      *
3368      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3369      * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
3370      * \n
3371      * Format of the return value {@link ArkUI_AttributeItem}:\n
3372      * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
3373      *
3374      */
3375     NODE_TEXT_AREA_CONTENT_TYPE,
3376 
3377     /**
3378      * @brief Sets whether the keyboard pops up when the input box gains focus.
3379      * It supports property setting, property reset and property acquisition interfaces.
3380      *
3381      * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
3382      * .value[0].i32: Whether to pop up the keyboard. \n
3383      * \n
3384      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
3385      * .value[0].i32: Whether to pop up the keyboard. \n
3386      *
3387      */
3388     NODE_TEXT_AREA_SHOW_KEYBOARD_ON_FOCUS,
3389     /**
3390      * @brief When this property is set, the height of the textArea component is calculated using this property.
3391      *
3392      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3393      * .value[0].i32: set the value of numberOfLines.\n
3394      * \n
3395      * Format of the return value {@link ArkUI_AttributeItem}:\n
3396      * .value[0].i32: Set the value of numberOfLines\n
3397      *
3398      */
3399     NODE_TEXT_AREA_NUMBER_OF_LINES,
3400 
3401     /**
3402      * @brief Sets the letter spacing of the <b>TextArea</b> component.
3403      * This attribute can be set, reset, and obtained as required through APIs.
3404      *
3405      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3406      * .value[0].f32: letter spacing. The default unit is fp. \n
3407      * \n
3408      * Format of the return value {@link ArkUI_AttributeItem}:\n
3409      * .value[0].f32: letter spacing. The default unit is fp. \n
3410      *
3411      * @since 15
3412      */
3413     NODE_TEXT_AREA_LETTER_SPACING = 8023,
3414     /**
3415      * @brief Sets whether to enable preview text for the <b>TextArea</b> component.
3416      * This attribute can be set, reset, and obtained as required through APIs.
3417      *
3418      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3419      * .value[0].i32: whether to enable preview tex. \n
3420      * \n
3421      * Format of the return value {@link ArkUI_AttributeItem}:\n
3422      * .value[0].i32: whether to enable preview tex. \n
3423      *
3424      * @since 15
3425      */
3426     NODE_TEXT_AREA_ENABLE_PREVIEW_TEXT = 8024,
3427 
3428     /**
3429      * @brief Sets whether to center text vertically in the textArea component.
3430      *
3431      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3432      * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
3433      * \n
3434      * Format of the return value {@link ArkUI_AttributeItem}:\n
3435      * .value[0].i32: whether to center text vertically. \n
3436      *
3437      * @since 18
3438      */
3439     NODE_TEXT_AREA_HALF_LEADING = 8025,
3440 
3441     /**
3442     * @brief Set the keyboard style of textArea
3443     *
3444     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3445     * .value[0].i32:keyboard style,the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
3446     * \n
3447     * Format of the return value {@link ArkUI_AttributeItem}:\n
3448     * .value[0].i32:keyboard style,the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
3449     *
3450     * @since 15
3451     */
3452     NODE_TEXT_AREA_KEYBOARD_APPEARANCE = 8026,
3453 
3454     /**
3455      * @brief Defines the button text content. This attribute can be set, reset, and obtained as required through APIs.
3456      *
3457      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3458      * .string: default text content. \n
3459      * \n
3460      * Format of the return value {@link ArkUI_AttributeItem}:\n
3461      * .string: default text content. \n
3462      *
3463      */
3464     NODE_BUTTON_LABEL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_BUTTON,
3465 
3466     /**
3467      * @brief Sets the button type. This attribute can be set, reset, and obtained as required through APIs.
3468      *
3469      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3470      * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
3471      * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
3472      * \n
3473      * Format of the return value {@link ArkUI_AttributeItem}:\n
3474      * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
3475      * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
3476      *
3477      */
3478     NODE_BUTTON_TYPE,
3479 
3480     /**
3481     * @brief Defines the minimum font scale attribute, which can be set, reset, and obtained as required through APIs.
3482     *
3483     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3484     * .value[0].f32: minimum font scale, in fp.
3485     * \n
3486     * Format of the return value {@link ArkUI_AttributeItem}:\n
3487     * .value[0].f32: minimum font scale, in fp.
3488     *
3489     * @since 18
3490     */
3491     NODE_BUTTON_MIN_FONT_SCALE,
3492 
3493     /**
3494     * @brief Defines the maximum font scale attribute, which can be set, reset, and obtained as required through APIs.
3495     *
3496     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3497     * .value[0].f32: maximum font scale, in fp.
3498     * \n
3499     * Format of the return value {@link ArkUI_AttributeItem}:\n
3500     * .value[0].f32: maximum font scale, in fp.
3501     *
3502     * @since 18
3503     */
3504     NODE_BUTTON_MAX_FONT_SCALE,
3505 
3506     /**
3507      * @brief Defines the current value of the progress indicator.
3508      * This attribute can be set, reset, and obtained as required through APIs.
3509      *
3510      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3511      * .value[0].f32: current value of the progress indicator. \n
3512      * \n
3513      * Format of the return value {@link ArkUI_AttributeItem}:\n
3514      * .value[0].f32: current value of the progress indicator. \n
3515      *
3516      */
3517     NODE_PROGRESS_VALUE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PROGRESS,
3518     /**
3519      * @brief Defines the total value of the progress indicator.
3520      * This attribute can be set, reset, and obtained as required through APIs.
3521      *
3522      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3523      * .value[0].f32: total value of the progress indicator. \n
3524      * \n
3525      * Format of the return value {@link ArkUI_AttributeItem}:\n
3526      * .value[0].f32: total value of the progress indicator. \n
3527      *
3528      */
3529     NODE_PROGRESS_TOTAL,
3530     /**
3531      * @brief Defines the color for the progress value on the progress indicator.
3532      * This attribute can be set, reset, and obtained as required through APIs.
3533      *
3534      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3535      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3536      * \n
3537      * Format of the return value {@link ArkUI_AttributeItem}:\n
3538      * .value[0].u32: color value, in 0xARGB format. \n
3539      *
3540      */
3541     NODE_PROGRESS_COLOR,
3542     /**
3543      * @brief Defines the type of the progress indicator.
3544      * This attribute can be set, reset, and obtained as required through APIs.
3545      *
3546      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3547      * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}.
3548      * The default value is <b>ARKUI_PROGRESS_TYPE_LINEAR</b>. \n
3549      * \n
3550      * Format of the return value {@link ArkUI_AttributeItem}:\n
3551      * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}. \n
3552      *
3553      */
3554     NODE_PROGRESS_TYPE,
3555     /**
3556      * @brief Sets the style of the linear progress indicator.
3557      * This attribute can be set, reset, and obtained as required through APIs.
3558      * If the progress indicator type is not linear, it will not take effect.
3559      *
3560      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3561      * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to set the style. \n
3562      * \n
3563      * Format of the return value {@link ArkUI_AttributeItem}:\n
3564      * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to get the style. \n
3565      *
3566      * @since 15
3567      */
3568     NODE_PROGRESS_LINEAR_STYLE,
3569 
3570     /**
3571      * @brief Defines whether the check box is selected.
3572      * This attribute can be set, reset, and obtained as required through APIs.
3573      *
3574      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3575      * .value[0].i32: whether the check box is selected.
3576      * The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
3577      * \n
3578      * Format of the return value {@link ArkUI_AttributeItem}:\n
3579      * .value[0].i32: The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
3580      *
3581      */
3582     NODE_CHECKBOX_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,
3583 
3584     /**
3585      * @brief Defines the color of the check box when it is selected.
3586      * This attribute can be set, reset, and obtained as required through APIs.
3587      *
3588      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3589      * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
3590      * \n
3591      * Format of the return value {@link ArkUI_AttributeItem}:\n
3592      * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>.
3593      *
3594      */
3595     NODE_CHECKBOX_SELECT_COLOR,
3596 
3597     /**
3598      * @brief Defines the border color of the check box when it is not selected.
3599      * This attribute can be set, reset, and obtained as required through APIs.
3600      *
3601      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3602      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
3603      * \n
3604      * Format of the return value {@link ArkUI_AttributeItem}:\n
3605      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
3606      *
3607      */
3608     NODE_CHECKBOX_UNSELECT_COLOR,
3609 
3610     /**
3611      * @brief Defines the internal icon style of the check box.
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].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
3616      * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
3617      * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
3618      * \n
3619      * Format of the return value {@link ArkUI_AttributeItem}:\n
3620      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
3621      * .value[1].f32: size of the internal mark, in vp. \n
3622      * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
3623      *
3624      */
3625     NODE_CHECKBOX_MARK,
3626 
3627     /**
3628      * @brief Defines the shape of the check box.
3629      * This attribute can be set, reset, and obtained as required through APIs.
3630      *
3631      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3632      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
3633      * \n
3634      * Format of the return value {@link ArkUI_AttributeItem}:\n
3635      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
3636      *
3637      */
3638     NODE_CHECKBOX_SHAPE,
3639 
3640     /**
3641      * @brief Defines the name of the checkbox.
3642      * This attribute can be set, reset, and obtained as required through APIs.
3643      *
3644      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3645      * .string: component name. \n
3646      * \n
3647      * Format of the return value {@link ArkUI_AttributeItem}:\n
3648      * .string: component name. \n
3649      *
3650      * @since 15
3651      */
3652     NODE_CHECKBOX_NAME,
3653 
3654     /**
3655      * @brief Defines the name of the checkbox.
3656      * This attribute can be set, reset, and obtained as required through APIs.
3657      *
3658      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3659      * .string: component name. \n
3660      * \n
3661      * Format of the return value {@link ArkUI_AttributeItem}:\n
3662      * .string: component name. \n
3663      *
3664      * @since 15
3665      */
3666     NODE_CHECKBOX_GROUP,
3667 
3668     /**
3669      * @brief Defines the ID of the <b><XComponent></b> component.
3670      * This attribute can be set and obtained as required through APIs.
3671      *
3672      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3673      * .string: component ID. \n
3674      * \n
3675      * Format of the return value {@link ArkUI_AttributeItem}:\n
3676      * .string: component ID. \n
3677      *
3678      */
3679     NODE_XCOMPONENT_ID = MAX_NODE_SCOPE_NUM * ARKUI_NODE_XCOMPONENT,
3680     /**
3681      * @brief Defines the type of the <b><XComponent></b> component.
3682      * This attribute can be set, reset, and obtained as required through APIs.
3683      *
3684      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3685      * .value[0].i32: type {@link ArkUI_XComponentType}. The default value is <b>ARKUI_XCOMPONENT_TYPE_SURFACE</b>. \n
3686      * \n
3687      * Format of the return value {@link ArkUI_AttributeItem}:\n
3688      * .value[0].i32: type {@link ArkUI_XComponentType}. \n
3689      *
3690      */
3691     NODE_XCOMPONENT_TYPE,
3692     /**
3693      * @brief Defines the width and height of the <b><XComponent></b> component.
3694      * This attribute can be set and obtained as required through APIs.
3695      *
3696      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3697      * .value[0].u32: width, in px. \n
3698      * .value[1].u32: height, in px. \n
3699      * \n
3700      * Format of the return value {@link ArkUI_AttributeItem}:\n
3701      * .value[0].u32: width, in px. \n
3702      * .value[1].u32: height, in px. \n
3703      *
3704      */
3705     NODE_XCOMPONENT_SURFACE_SIZE,
3706     /**
3707      * @brief Defines the rectangle information of surface created by the <b><XComponent></b> component.
3708      * This attribute can be set and obtained as required through APIs.
3709      *
3710      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3711      * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
3712      * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
3713      * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
3714      * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
3715      * \n
3716      * Format of the return value {@link ArkUI_AttributeItem}:\n
3717      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3718      * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
3719      * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
3720      * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
3721      * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
3722      * @since 18
3723      */
3724     NODE_XCOMPONENT_SURFACE_RECT,
3725     /**
3726      * @brief Defines whether to enable the AI analyzer for the <b><XComponent></b> component.
3727      * This attribute can be set and obtained as required through APIs.
3728      *
3729      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3730      * value[0].i32: The parameter type is 1 or 0.
3731      * \n
3732      * Format of the return value {@link ArkUI_AttributeItem}:\n
3733      * value[0].i32: The parameter type is 1 or 0.
3734      * @since 18
3735      */
3736     NODE_XCOMPONENT_ENABLE_ANALYZER,
3737 
3738     /**
3739      * @brief Defines whether to display the lunar calendar in the date picker.
3740      * This attribute can be set, reset, and obtained as required through APIs.
3741      *
3742      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3743      * .value[0].i32: whether to display the lunar calendar in the date picker. The default value is <b>false</b>. \n
3744      * \n
3745      * Format of the return value {@link ArkUI_AttributeItem}:\n
3746      * .value[0].i32: whether to display the lunar calendar in the date picker.
3747      *
3748      */
3749     NODE_DATE_PICKER_LUNAR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
3750     /**
3751      * @brief Defines the start date of the date picker.
3752      * This attribute can be set, reset, and obtained as required through APIs.
3753      *
3754      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3755      * .string: date. The default value is <b>"1970-1-1"</b>. \n
3756      * \n
3757      * Format of the return value {@link ArkUI_AttributeItem}:\n
3758      * .string: date. \n
3759      *
3760      */
3761     NODE_DATE_PICKER_START,
3762     /**
3763      * @brief Defines the end date of the date picker.
3764      * This attribute can be set, reset, and obtained as required through APIs.
3765      *
3766      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3767      * .string: date. The default value is <b>"2100-12-31"</b>. \n
3768      * \n
3769      * Format of the return value {@link ArkUI_AttributeItem}:\n
3770      * .string: date. \n
3771      *
3772      */
3773     NODE_DATE_PICKER_END,
3774     /**
3775      * @brief Defines the selected date of the date picker.
3776      * This attribute can be set, reset, and obtained as required through APIs.
3777      *
3778      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3779      * .string: date. The default value is <b>"2024-01-22"</b>. \n
3780      * \n
3781      * Format of the return value {@link ArkUI_AttributeItem}:\n
3782      * .string: date.
3783      *
3784      */
3785     NODE_DATE_PICKER_SELECTED,
3786     /**
3787      * @brief Defines the font color, font size, and font weight for the top and bottom items in the date picker.
3788      * This attribute can be set, reset, and obtained as required through APIs.
3789      *
3790      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3791      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3792      * Parameter 1: font color, in #ARGB format.\n
3793      * Parameter 2: font size, in fp. The value is a number.\n
3794      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3795      * Parameter 4: fonts, separated by commas (,).\n
3796      * Parameter 5: font style. Available options are ("normal", "italic").\n
3797      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3798      * \n
3799      * Format of the return value {@link ArkUI_AttributeItem}:\n
3800      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3801      * Parameter 1: font color, in #ARGB format.\n
3802      * Parameter 2: font size, in fp. The value is a number.\n
3803      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3804      * Parameter 4: fonts, separated by commas (,).\n
3805      * Parameter 5: font style. Available options are ("normal", "italic").\n
3806      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3807      *
3808      */
3809     NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE,
3810     /**
3811      * @brief Defines the font color, font size, and font weight of all items except the top, bottom, and selected
3812      * items in the date picker. This attribute can be set, reset, and obtained as required through APIs.
3813      *
3814      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3815      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3816      * Parameter 1: font color, in #ARGB format.\n
3817      * Parameter 2: font size, in fp. The value is a number.\n
3818      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3819      * Parameter 4: fonts, separated by commas (,).\n
3820      * Parameter 5: font style. Available options are ("normal", "italic").\n
3821      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3822      * \n
3823      * Format of the return value {@link ArkUI_AttributeItem}:\n
3824      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3825      * Parameter 1: font color, in #ARGB format.\n
3826      * Parameter 2: font size, in fp. The value is a number.\n
3827      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3828      * Parameter 4: fonts, separated by commas (,).\n
3829      * Parameter 5: font style. Available options are ("normal", "italic").\n
3830      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3831      *
3832      */
3833     NODE_DATE_PICKER_TEXT_STYLE,
3834     /**
3835      * @brief Defines the font color, font size, and font weight of the selected item in the date picker.
3836      * This attribute can be set, reset, and obtained as required through APIs.
3837      *
3838      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3839      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3840      * Parameter 1: font color, in #ARGB format.\n
3841      * Parameter 2: font size, in fp. The value is a number.\n
3842      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3843      * Parameter 4: fonts, separated by commas (,).\n
3844      * Parameter 5: font style. Available options are ("normal", "italic").\n
3845      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3846      * \n
3847      * Format of the return value {@link ArkUI_AttributeItem}:\n
3848      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3849      * Parameter 1: font color, in #ARGB format.\n
3850      * Parameter 2: font size, in fp. The value is a number.\n
3851      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3852      * Parameter 4: fonts, separated by commas (,).\n
3853      * Parameter 5: font style. Available options are ("normal", "italic").\n
3854      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3855      *
3856      */
3857     NODE_DATE_PICKER_SELECTED_TEXT_STYLE,
3858     /**
3859      * @brief Defines the mode of the date picker.
3860      * This attribute can be set, reset, and obtained as required through APIs.
3861      *
3862      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3863      * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
3864      * \n
3865      * Format of the return value {@link ArkUI_AttributeItem}:\n
3866      * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
3867      *
3868      * @since 18
3869      */
3870     NODE_DATE_PICKER_MODE = 13007,
3871     /**
3872      * @brief Defines whether haptic feedback.
3873      * This attribute can be set, reset, and obtained as required through APIs.
3874      *
3875      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3876      * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
3877      * <b>false</b> means the opposite.\n
3878      * \n
3879      * Format of the return value {@link ArkUI_AttributeItem}:\n
3880      * value[0].i32: whether to feedback.\n
3881      *
3882      * @since 18
3883      */
3884     NODE_DATE_PICKER_ENABLE_HAPTIC_FEEDBACK = 13008,
3885     /**
3886      * @brief Defines the time of the selected item. in the timer picker.
3887      * This attribute can be set, reset, and obtained as required through APIs.
3888      *
3889      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3890      * .string: time. The default value is the current system time. \n
3891      * \n
3892      * Format of the return value {@link ArkUI_AttributeItem}:\n
3893      * .string: time.
3894      *
3895      */
3896 
3897     NODE_TIME_PICKER_SELECTED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
3898     /**
3899      * @brief Defines whether the display time is in 24-hour format.
3900      * This attribute can be set, reset, and obtained as required through APIs.
3901      *
3902      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3903      * .value[0].i32: whether the display time is in 24-hour format. The default value is <b>false</b>. \n
3904      * \n
3905      * Format of the return value {@link ArkUI_AttributeItem}:\n
3906      * .value[0].i32: whether the display time is in 24-hour format.
3907      *
3908      */
3909     NODE_TIME_PICKER_USE_MILITARY_TIME,
3910     /**
3911      * @brief Defines the font color, font size, and font weight for the top and bottom items in the time picker.
3912      * This attribute can be set, reset, and obtained as required through APIs.
3913      *
3914      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3915      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3916      * Parameter 1: font color, in #ARGB format.\n
3917      * Parameter 2: font size, in fp. The value is a number.\n
3918      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3919      * Parameter 4: fonts, separated by commas (,).\n
3920      * Parameter 5: font style. Available options are ("normal", "italic").\n
3921      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3922      * \n
3923      * Format of the return value {@link ArkUI_AttributeItem}:\n
3924      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3925      * Parameter 1: font color, in #ARGB format.\n
3926      * Parameter 2: font size, in fp. The value is a number.\n
3927      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3928      * Parameter 4: fonts, separated by commas (,).\n
3929      * Parameter 5: font style. Available options are ("normal", "italic").\n
3930      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3931      *
3932      */
3933     NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE,
3934     /**
3935      * @brief Defines the font color, font size, and font weight of all items except the top, bottom, and selected items
3936      * in the time picker. This attribute can be set, reset, and obtained as required through APIs.
3937      *
3938      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3939      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3940      * Parameter 1: font color, in #ARGB format.\n
3941      * Parameter 2: font size, in fp. The value is a number.\n
3942      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3943      * Parameter 4: fonts, separated by commas (,).\n
3944      * Parameter 5: font style. Available options are ("normal", "italic").\n
3945      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3946      * \n
3947      * Format of the return value {@link ArkUI_AttributeItem}:\n
3948      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3949      * Parameter 1: font color, in #ARGB format.\n
3950      * Parameter 2: font size, in fp. The value is a number.\n
3951      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3952      * Parameter 4: fonts, separated by commas (,).\n
3953      * Parameter 5: font style. Available options are ("normal", "italic").\n
3954      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3955      *
3956      */
3957     NODE_TIME_PICKER_TEXT_STYLE,
3958     /**
3959      * @brief Defines the font color, font size, and font weight of the selected item in the time picker.
3960      * This attribute can be set, reset, and obtained as required through APIs.
3961      *
3962      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3963      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3964      * Parameter 1: font color, in #ARGB format.\n
3965      * Parameter 2: font size, in fp. The value is a number.\n
3966      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3967      * Parameter 4: fonts, separated by commas (,).\n
3968      * Parameter 5: font style. Available options are ("normal", "italic").\n
3969      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3970      * \n
3971      * Format of the return value {@link ArkUI_AttributeItem}:\n
3972      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3973      * Parameter 1: font color, in #ARGB format.\n
3974      * Parameter 2: font size, in fp. The value is a number.\n
3975      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3976      * Parameter 4: fonts, separated by commas (,).\n
3977      * Parameter 5: font style. Available options are ("normal", "italic").\n
3978      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3979      *
3980      */
3981     NODE_TIME_PICKER_SELECTED_TEXT_STYLE,
3982      /**
3983      * @brief Defines the start time of the time picker.
3984      * This attribute can be set, reset, and obtained as required through APIs.
3985      *
3986      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3987      * .string: time. The default value is <b>"00:00:00"</b>.\n
3988      * \n
3989      * Format of the return value {@link ArkUI_AttributeItem}:\n
3990      * .string: time. The default value is <b>"00:00:00"</b>.\n
3991      *
3992      * @since 18
3993      */
3994     NODE_TIME_PICKER_START = 14005,
3995     /**
3996      * @brief Defines the end time of the time picker.
3997      * This attribute can be set, reset, and obtained as required through APIs.
3998      *
3999      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4000      * .string: time. The default value is <b>"23:59:59"</b>.\n
4001      * \n
4002      * Format of the return value {@link ArkUI_AttributeItem}:\n
4003      * .string: time. The default value is <b>"23:59:59"</b>.\n
4004      *
4005      * @since 18
4006      */
4007     NODE_TIME_PICKER_END = 14006,
4008     /**
4009      * @brief Defines whether the AM/PM option is cascaded with the time in 12-hour mode.
4010      * This attribute can be set, reset, and obtained as required through APIs.
4011      *
4012      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4013      * .value[0].i32: whether to enable cascade. The default value is <b>false</b>.\n
4014      * \n
4015      * Format of the return value {@link ArkUI_AttributeItem}:\n
4016      * .value[0].i32: whether to enable cascade.\n
4017      *
4018      * @since 18
4019      */
4020     NODE_TIME_PICKER_ENABLE_CASCADE = 14007,
4021 
4022     /**
4023      * @brief Defines the data selection range of the text picker.
4024      * This attribute can be set, reset, and obtained as required through APIs.
4025      *
4026      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4027      * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.
4028      * The default value is <b>ARKUI_TEXTPICKER_RANGETYPE_SINGLE</b>. \n
4029      * ?.string: string input, whose format varies by picker type.\n
4030      * 1: single-column picker. The input format is a group of strings separated by semicolons (;).\n
4031      * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
4032      * semicolons (;), and strings within each pair are separated by commas (,). \n
4033      * ?.object: Object input, whose format varies by picker type.\n
4034      * 1: single-column picker with image support. The input structure is {@link ARKUI_TextPickerRangeContent}.\n
4035      * 2: multi-column interconnected picker. The input structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
4036      * \n
4037      * Format of the return value {@link ArkUI_AttributeItem}:\n
4038      * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.\n
4039      * ?.string: string output, whose format varies by picker type.\n
4040      * 1: single-column picker. The output format is a group of strings separated by semicolons (;).\n
4041      * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
4042      * semicolons (;), and strings within each pair are separated by commas (,). \n
4043      * ?.string: Object output, whose format varies by picker type.\n
4044      * 1: single-column picker with image support. The output structure is {@link ARKUI_TextPickerRangeContent}.\n
4045      * 2: multi-column interconnected picker. The output structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
4046      *
4047      */
4048     NODE_TEXT_PICKER_OPTION_RANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,
4049     /**
4050      * @brief Defines the index of the default selected item in the data selection range of the text picker.
4051      * This attribute can be set, reset, and obtained as required through APIs.
4052      *
4053      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4054      * .value[0].u32: index. If there are multiple index values, add them one by one. \n
4055      * \n
4056      * Format of the return value {@link ArkUI_AttributeItem}:\n
4057      * .value[0].u32: index. If there are multiple index values, add them one by one.\n
4058      *
4059      */
4060     NODE_TEXT_PICKER_OPTION_SELECTED,
4061     /**
4062      * @brief Defines the value of the default selected item in the text picker.
4063      * This attribute can be set, reset, and obtained as required through APIs.
4064      *
4065      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4066      * .string: value of the selected item. If there are multiple values, add them one by one and
4067      * separate them with semicolons (;). \n
4068      * \n
4069      * Format of the return value {@link ArkUI_AttributeItem}:\n
4070      * .string: value of the selected item. If there are multiple values, add them one by one and
4071      * separate them with semicolons (;).\n
4072      *
4073      */
4074     NODE_TEXT_PICKER_OPTION_VALUE,
4075     /**
4076      * @brief Defines the font color, font size, and font weight for the top and bottom items in the text picker.
4077      * This attribute can be set, reset, and obtained as required through APIs.
4078      *
4079      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4080      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4081      * Parameter 1: font color, in #ARGB format.\n
4082      * Parameter 2: font size, in fp. The value is a number.\n
4083      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4084      * Parameter 4: fonts, separated by commas (,).\n
4085      * Parameter 5: font style. Available options are ("normal", "italic").\n
4086      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4087      * \n
4088      * Format of the return value {@link ArkUI_AttributeItem}:\n
4089      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4090      * Parameter 1: font color, in #ARGB format.\n
4091      * Parameter 2: font size, in fp. The value is a number.\n
4092      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4093      * Parameter 4: fonts, separated by commas (,).\n
4094      * Parameter 5: font style. Available options are ("normal", "italic").\n
4095      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4096      *
4097      */
4098     NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE,
4099     /**
4100      * @brief Defines the font color, font size, and font weight for all items except the top, bottom, and selected
4101      * items in the text picker. This attribute can be set, reset, and obtained as required through APIs.
4102      *
4103      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4104      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4105      * Parameter 1: font color, in #ARGB format.\n
4106      * Parameter 2: font size, in fp. The value is a number.\n
4107      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4108      * Parameter 4: fonts, separated by commas (,).\n
4109      * Parameter 5: font style. Available options are ("normal", "italic").\n
4110      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4111      * \n
4112      * Format of the return value {@link ArkUI_AttributeItem}:\n
4113      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4114      * Parameter 1: font color, in #ARGB format.\n
4115      * Parameter 2: font size, in fp. The value is a number.\n
4116      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4117      * Parameter 4: fonts, separated by commas (,).\n
4118      * Parameter 5: font style. Available options are ("normal", "italic").\n
4119      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4120      *
4121      */
4122     NODE_TEXT_PICKER_TEXT_STYLE,
4123     /**
4124      * @brief Defines the font color, font size, and font weight for the selected item in the text picker.
4125      * This attribute can be set, reset, and obtained as required through APIs.
4126      *
4127      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4128      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4129      * Parameter 1: font color, in #ARGB format.\n
4130      * Parameter 2: font size, in fp. The value is a number.\n
4131      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4132      * Parameter 4: fonts, separated by commas (,).\n
4133      * Parameter 5: font style. Available options are ("normal", "italic").\n
4134      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4135      * \n
4136      * Format of the return value {@link ArkUI_AttributeItem}:\n
4137      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4138      * Parameter 1: font color, in #ARGB format.\n
4139      * Parameter 2: font size, in fp. The value is a number.\n
4140      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4141      * Parameter 4: fonts, separated by commas (,).\n
4142      * Parameter 5: font style. Available options are ("normal", "italic").\n
4143      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4144      *
4145      */
4146     NODE_TEXT_PICKER_SELECTED_TEXT_STYLE,
4147     /**
4148      * @brief Defines the index of the default selected item in the data selection range of the text picker.
4149      * This attribute can be set, reset, and obtained as required through APIs.
4150      *
4151      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4152      * .value[0...].i32: index of the default item in the data selection range.
4153      *
4154      */
4155     NODE_TEXT_PICKER_SELECTED_INDEX,
4156     /**
4157      * @brief Defines whether to support scroll looping for the text picker.
4158      * This attribute can be set, reset, and obtained as required through APIs.
4159      *
4160      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4161      * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
4162      * <b>false</b> means the opposite.\n \n
4163      * \n
4164      * Format of the return value {@link ArkUI_AttributeItem}:\n
4165      * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the opposite. \n
4166      *
4167      */
4168     NODE_TEXT_PICKER_CAN_LOOP,
4169     /**
4170      * @brief Defines the height of each item in the picker. This attribute can be set, reset, and obtained as required
4171      * through APIs.
4172      *
4173      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4174      * .value[0].f32: item height, in vp. \n
4175      * \n
4176      * Format of the return value {@link ArkUI_AttributeItem}:\n
4177      * value[0].f32: item height, in vp. \n
4178      *
4179      */
4180     NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT,
4181     /**
4182      * @brief Defines whether haptic feedback.
4183      * This attribute can be set, reset, and obtained as required through APIs.
4184      *
4185      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4186      * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
4187      * <b>false</b> means the opposite.\n
4188      * \n
4189      * Format of the return value {@link ArkUI_AttributeItem}:\n
4190      * value[0].i32: whether to feedback.\n
4191      *
4192      * @since 18
4193      */
4194     NODE_TEXT_PICKER_ENABLE_HAPTIC_FEEDBACK = 15010,
4195     /**
4196      * @brief Defines the style of the background in the selected state of the calendar picker.
4197      * This attribute can be set, reset, and obtained as required through APIs.
4198      *
4199      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4200      * .value[0].f32: style of the background in the selected state of the calendar picker.
4201      * The value range is [0, +∞). If the value is <b>0</b>, the background is a rectangle with square corners.
4202      If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to
4203      * or greater than 16, the background is a circle. \n
4204      * \n
4205      * Format of the return value {@link ArkUI_AttributeItem}:\n
4206      * .value[0].f32: style of the background in the selected state of the calendar picker. The value range is [0, +∞).
4207      * If the value is <b>0</b>, the background is a rectangle with square corners.
4208      If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to or
4209      * greater than 16, the background is a circle. \n
4210      *
4211      */
4212     NODE_CALENDAR_PICKER_HINT_RADIUS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
4213     /**
4214      * @brief Defines the date of the selected item in the calendar picker.
4215      * This attribute can be set, reset, and obtained as required through APIs.
4216      *
4217      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4218      * .value[0].u32: year of the selected date. \n
4219      * .value[1].u32: month of the selected date. \n
4220      * .value[2].u32: day of the selected date. \n
4221      * \n
4222      * Format of the return value {@link ArkUI_AttributeItem}:\n
4223      * .value[0].u32: year of the selected date. \n
4224      * .value[1].u32: month of the selected date. \n
4225      * .value[2].u32: day of the selected date. \n
4226      *
4227      */
4228     NODE_CALENDAR_PICKER_SELECTED_DATE,
4229     /**
4230      * @brief Defines how the calendar picker is aligned with the entry component.
4231      * This attribute can be set, reset, and obtained as required through APIs.
4232      *
4233      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4234      * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
4235      * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
4236      * the specified alignment mode. \n
4237      * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
4238      * the specified alignment mode. \n
4239      * \n
4240      * Format of the return value {@link ArkUI_AttributeItem}:\n
4241      * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
4242      * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
4243      * the specified alignment mode. \n
4244      * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
4245      * the specified alignment mode. \n
4246      *
4247      */
4248     NODE_CALENDAR_PICKER_EDGE_ALIGNMENT,
4249     /**
4250      * @brief Defines the font color, font size, and font weight in the entry area of the calendar picker.
4251      *
4252      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4253      * .value[0]?.u32: font color of the entry area. \n
4254      * .value[1]?.f32: font size of the entry area, in fp. \n
4255      * .value[2]?.i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
4256      * \n
4257      * Format of the return value {@link ArkUI_AttributeItem}:\n
4258      * .value[0].u32: font color of the entry area. \n
4259      * .value[1].f32: font size of the entry area, in fp. \n
4260      * .value[2].i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
4261      *
4262      */
4263     NODE_CALENDAR_PICKER_TEXT_STYLE,
4264     /**
4265      * @brief Defines the start date of the calendar picker.
4266      * This attribute can be set, reset, and obtained as required through APIs.
4267      *
4268      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4269      * .string: date. The value like <b>"1970-1-1"</b>. \n
4270      * \n
4271      * Format of the return value {@link ArkUI_AttributeItem}:\n
4272      * .string: date. \n
4273      *
4274      * @since 18
4275      */
4276     NODE_CALENDAR_PICKER_START = 16004,
4277     /**
4278      * @brief Defines the end date of the calendar picker.
4279      * This attribute can be set, reset, and obtained as required through APIs.
4280      *
4281      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4282      * .string: date. The value like <b>"2100-12-31"</b>. \n
4283      * \n
4284      * Format of the return value {@link ArkUI_AttributeItem}:\n
4285      * .string: date. \n
4286      *
4287      * @since 18
4288      */
4289     NODE_CALENDAR_PICKER_END = 16005,
4290     /**
4291      * @brief Defines the color of the slider. This attribute can be set, reset, and obtained as required through APIs.
4292      *
4293      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4294      * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4295      * \n
4296      * Format of the return value {@link ArkUI_AttributeItem}:\n
4297      * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4298      *
4299      */
4300     NODE_SLIDER_BLOCK_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,
4301 
4302     /**
4303      * @brief Defines the background color of the slider. This attribute can be set, reset, and obtained as required
4304      * through APIs.
4305      *
4306      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4307      * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
4308      * \n
4309      * Format of the return value {@link ArkUI_AttributeItem}:\n
4310      * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4311      *
4312      */
4313     NODE_SLIDER_TRACK_COLOR,
4314 
4315     /**
4316      * @brief Defines the color of the selected part of the slider track. This attribute can be set, reset, and obtained
4317      * as required through APIs.
4318      *
4319      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4320      * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
4321      * \n
4322      * Format of the return value {@link ArkUI_AttributeItem}:\n
4323      * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4324      *
4325      */
4326     NODE_SLIDER_SELECTED_COLOR,
4327 
4328     /**
4329      * @brief Sets whether to display the stepping value. This attribute can be set, reset, and obtained as required
4330      * through APIs.
4331      *
4332      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4333      * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
4334      * and <b>0</b> (default value) means the opposite. \n
4335      * \n
4336      * Format of the return value {@link ArkUI_AttributeItem}:\n
4337      * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
4338      * and <b>0</b> (default value) means the opposite. \n
4339      *
4340      */
4341     NODE_SLIDER_SHOW_STEPS,
4342 
4343     /**
4344      * @brief Defines the slider shape, which can be set, reset, and obtained as required through APIs.
4345      *
4346      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4347      * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
4348      * .string?: depending on the shape. Optional. \n
4349      * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
4350      * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
4351      * There are five types:\n
4352      * 1. Rectangle:\n
4353      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4354      * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
4355      * .value[2].f32: width of the rectangle.\n
4356      * .value[3].f32: height of the rectangle.\n
4357      * .value[4].f32: width of the rounded corner of the rectangle.\n
4358      * .value[5].f32: height of the rounded corner of the rectangle.\n
4359      * 2. Circle:\n
4360      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4361      * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
4362      * .value[2].f32: width of the circle.\n
4363      * .value[3].f32: height of the circle.\n
4364      * 3.Ellipse:\n
4365      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4366      * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
4367      * .value[2].f32: width of the ellipse.\n
4368      * .value[3].f32: height of the ellipse;\n
4369      * 4. Path:\n
4370      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4371      * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
4372      * .value[2].f32: width of the path.\n
4373      * .value[3].f32: height of the path.\n
4374      * .string: command for drawing the path.\n
4375      * \n
4376      * Format of the return value {@link ArkUI_AttributeItem}:\n
4377      * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
4378      * .string?: depending on the shape. Optional. \n
4379      * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
4380      * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
4381       * There are five types:\n
4382      * 1. Rectangle:\n
4383      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4384      * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
4385      * .value[2].f32: width of the rectangle.\n
4386      * .value[3].f32: height of the rectangle.\n
4387      * .value[4].f32: width of the rounded corner of the rectangle.\n
4388      * .value[5].f32: height of the rounded corner of the rectangle.\n
4389      * 2. Circle:\n
4390      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4391      * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
4392      * .value[2].f32: width of the circle.\n
4393      * .value[3].f32: height of the circle.\n
4394      * 3.Ellipse:\n
4395      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4396      * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
4397      * .value[2].f32: width of the ellipse.\n
4398      * .value[3].f32: height of the ellipse;\n
4399      * 4. Path:\n
4400      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4401      * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
4402      * .value[2].f32: width of the path.\n
4403      * .value[3].f32: height of the path.\n
4404      * .string: command for drawing the path.\n
4405      *
4406      */
4407     NODE_SLIDER_BLOCK_STYLE,
4408 
4409     /**
4410      * @brief Defines the current value of the slider. This attribute can be set, reset, and obtained as required
4411      * through APIs.
4412      *
4413      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4414      * .value[0].f32: current value. \n
4415      * \n
4416      * Format of the return value {@link ArkUI_AttributeItem}:\n
4417      * .value[0].f32: current value.
4418      *
4419      */
4420     NODE_SLIDER_VALUE,
4421 
4422     /**
4423      * @brief Defines the minimum value of the slider. This attribute can be set, reset, and obtained as required
4424      * through APIs.
4425      *
4426      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4427      * .value[0].f32: minimum value. \n
4428      * \n
4429      * Format of the return value {@link ArkUI_AttributeItem}:\n
4430      * .value[0].f32: minimum value.
4431      *
4432      */
4433     NODE_SLIDER_MIN_VALUE,
4434 
4435     /**
4436      * @brief Defines the maximum value of the slider. This attribute can be set, reset, and obtained as required
4437      * through APIs.
4438      *
4439      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4440      * .value[0].f32: maximum value. \n
4441      * \n
4442      * Format of the return value {@link ArkUI_AttributeItem}:\n
4443      * .value[0].f32: maximum value.
4444      *
4445      */
4446     NODE_SLIDER_MAX_VALUE,
4447 
4448     /**
4449      * @brief Defines the step of the slider. This attribute can be set, reset, and obtained as required through APIs.
4450      *
4451      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4452      * .value[0].f32: step. The value range is [0.01, 100]. \n
4453      * \n
4454      * Format of the return value {@link ArkUI_AttributeItem}:\n
4455      * .value[0].f32: step. The value range is [0.01, 100].
4456      *
4457      */
4458     NODE_SLIDER_STEP,
4459 
4460     /**
4461      * @brief Defines whether the slider moves horizontally or vertically. This attribute can be set, reset, and
4462      * obtained as required through APIs.
4463      *
4464      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4465      * .value[0].i32: whether the slider moves horizontally or vertically.
4466      * The parameter type is {@link ArkUI_SliderDirection}. \n
4467      * \n
4468      * Format of the return value {@link ArkUI_AttributeItem}:\n
4469      * .value[0].i32: whether the slider moves horizontally or vertically.
4470      *
4471      */
4472     NODE_SLIDER_DIRECTION,
4473 
4474     /**
4475      * @brief Defines whether the slider values are reversed. This attribute can be set, reset, and obtained as required
4476      * through APIs.
4477      *
4478      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4479      * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
4480      * reversed, and <b>0</b> means the opposite. \n
4481      * \n
4482      * Format of the return value {@link ArkUI_AttributeItem}:\n
4483      * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
4484      * reversed, and <b>0</b> means the opposite.
4485      *
4486      */
4487     NODE_SLIDER_REVERSE,
4488 
4489     /**
4490      * @brief Defines the style of the slider thumb and track. This attribute can be set, reset, and obtained
4491      * as required through APIs.
4492      *
4493      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4494      * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}. \n
4495      * \n
4496      * Format of the return value {@link ArkUI_AttributeItem}:\n
4497      * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}.
4498      *
4499      */
4500     NODE_SLIDER_STYLE,
4501 
4502     /**
4503      * @brief Sets the track thickness of the slider.
4504      * This attribute can be set, reset, and obtained as required through APIs.
4505      *
4506      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4507      * .value[0].f32: track thickness of the slider, in vp. The default value is 4.0 vp when <b>NODE_SLIDER_STYLE</b>
4508      * is set to <b>ARKUI_SLIDER_STYLE_OUT_SET</b> and 20.0 vp when <b>NODE_SLIDER_STYLE</b> is set to
4509      * <b>ARKUI_SLIDER_STYLE_IN_SET</b>. \n
4510      * \n
4511      * Format of the return value {@link ArkUI_AttributeItem}:\n
4512      * .value[0].f32: track thickness of the slider, in vp. \n
4513      *
4514      */
4515     NODE_SLIDER_TRACK_THICKNESS,
4516 
4517     /**
4518      * @brief Defines whether haptic feedback.
4519      * This attribute can be set, reset, and obtained as required through APIs.
4520      *
4521      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4522      * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
4523      * <b>false</b> means the opposite.\n
4524      * \n
4525      * Format of the return value {@link ArkUI_AttributeItem}:\n
4526      * value[0].i32: whether to feedback.\n
4527      * When enabling haptic feedback, you need to add "ohos.permission.VIBRATE" in the
4528      * requestPermissions field of the module.json5 file to enable vibration permission.\n
4529      *
4530      * @since 18
4531      */
4532     NODE_SLIDER_ENABLE_HAPTIC_FEEDBACK = 17013,
4533 
4534     /**
4535      * @brief Set the selection status of an option button. Attribute setting,
4536      * attribute resetting, and attribute obtaining are supported.
4537      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4538      * .value[0].i32: check status of an option button. The default value is false.
4539      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
4540      * .value[0].i32: selection status of an option button.
4541      */
4542     NODE_RADIO_CHECKED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
4543     /**
4544      * @brief Set the styles of the selected and deselected states of the option button.
4545      * The attribute setting, attribute resetting, and attribute obtaining are supported.
4546      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4547      * .value[0]?. u32: color of the mother board in enabled state. \n
4548      * The type is 0xARGB, and the default value is 0xFF007DFF. \n
4549      * .value[1]?. u32: stroke color in the close state. The type is 0xARGB, \n
4550      * and the default value is 0xFF182431. \n
4551      * .value[2]?. u32: color of the internal round pie in the enabled state. \n
4552      * The type is 0xARGB, and the default value is 0xFFFFFFFF. \n
4553      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
4554      * .value[0]. u32: color of the mother board in enabled state. \n
4555      * The type is 0xARGB, and the default value is 0xFF007DFF. \n
4556      * .value[1]. u32: stroke color in the close state. The type is 0xARGB, \n
4557      * and the default value is 0xFF182431. \n
4558      * .value[2]. u32: color of the internal round pie in the enabled state. \n
4559      * The type is 0xARGB, and the default value is 0xFFFFFFF. \n
4560      */
4561     NODE_RADIO_STYLE,
4562     /**
4563      * @brief Sets the value of the current radio.
4564      * This attribute can be set, reset, and obtained as required through APIs.
4565      *
4566      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4567      * .string: radio value.\n
4568      * \n
4569      * Format of the return value {@link ArkUI_AttributeItem}:\n
4570      * .string: radio value.\n
4571      *
4572      */
4573     NODE_RADIO_VALUE,
4574     /**
4575      * @brief Set the group name of the current Radio group, only one radio of the same group can be selected.
4576      * This attribute can be set, reset, and obtained as required through APIs.
4577      *
4578      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4579      * .string: name of the group to which the current option box belongs.\n
4580      * \n
4581      * Format of the return value {@link ArkUI_AttributeItem}:\n
4582      * .string: name of the group to which the current option box belongs.\n
4583      *
4584      */
4585     NODE_RADIO_GROUP,
4586 
4587     /**
4588      * @brief Set the image frames for the image animator. Dynamic updates is not supported.
4589      * This attribute can be set, reset, and obtained as required through APIs.
4590      *
4591      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4592      * .size: number of the images.\n
4593      * .object: array of the images, the type is {@ArkUI_ImageAnimatorFrameInfo} array.\n
4594      * \n
4595      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
4596      * .size: number of the images.\n
4597      * .object: array of the images, the type is {@ArkUI_ImageAnimatorFrameInfo} array.\n
4598      *
4599     */
4600     NODE_IMAGE_ANIMATOR_IMAGES = ARKUI_NODE_IMAGE_ANIMATOR * MAX_NODE_SCOPE_NUM,
4601     /**
4602      * @brief Set the playback status of the animation for the image animator.
4603      * This attribute can be set, reset, and obtained as required through APIs.
4604      *
4605      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4606      * .value[0].i32: the playback status of the animation, the type is {@link ArkUI_AnimationStatus},
4607      * and the default value is ARKUI_ANIMATION_STATUS_INITIAL.
4608      *
4609      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
4610      * .value[0].i32: the playback status of the animation, the type is {@link ArkUI_AnimationStatus}.\n
4611      *
4612     */
4613     NODE_IMAGE_ANIMATOR_STATE = 19001,
4614     /**
4615      * @brief Set the playback duration for the image animator. When the duration is 0, no image is played.
4616      * The value change takes effect only at the beginning of the next cycle.
4617      * When a separate duration is set in images, the setting of this attribute is invalid.
4618      * This attribute can be set, reset, and obtained as required through APIs.
4619      *
4620      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4621      * .value[0].i32: the playback duration, the unit is ms and the default value is 1000.\n
4622      *
4623      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
4624      * .value[0].i32: the playback duration, the unit is ms.\n
4625      *
4626     */
4627     NODE_IMAGE_ANIMATOR_DURATION = 19002,
4628     /**
4629      * @brief Set the playback direction for the image animator.
4630      * This attribute can be set, reset, and obtained as required through APIs.
4631      *
4632      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4633      * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
4634      * and 1 indicates that images are played from the last one to the first one.\n
4635      *
4636      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
4637      * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
4638      * and 1 indicates that images are played from the last one to the first one.\n
4639      *
4640     */
4641     NODE_IMAGE_ANIMATOR_REVERSE = 19003,
4642     /**
4643      * @brief Set whether the image size is the same as the component size.
4644      * This attribute can be set, reset, and obtained as required through APIs.
4645      *
4646      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4647      * .value[0].i32: whether the image size is the same as the component size.
4648      * 1 indicates the image size is the same as the component size.
4649      * In this case, the width, height, top, and left attributes of the image are invalid.
4650      * 0 indicates the image size is customized.
4651      * The width, height, top, and left attributes of each image must be set separately.
4652      *
4653      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
4654      * .value[0].i32: whether the image size is the same as the component size.
4655      * 1 indicates the image size is the same as the component size.
4656      * 0 indicates the image size is customized.
4657      *
4658     */
4659     NODE_IMAGE_ANIMATOR_FIXED_SIZE = 19004,
4660     /**
4661      * @brief Set the status before and after execution of the animation in the current playback direction.
4662      * This attribute can be set, reset, and obtained as required through APIs.
4663      *
4664      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4665      * .value[0].i32: the status before and after execution of the animation in the current playback direction,
4666      * the type is {ArkUI_AnimationFillMode} and the default value is ARKUI_ANIMATION_FILL_MODE_FORWARDS.\n
4667      *
4668      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
4669      * .value[0].i32: the status before and after execution of the animation in the current playback direction,
4670      * the type is {ArkUI_AnimationFillMode}.
4671      *
4672     */
4673     NODE_IMAGE_ANIMATOR_FILL_MODE = 19005,
4674     /**
4675      * @brief Set the number of times that the animation is played.
4676      * This attribute can be set, reset, and obtained as required through APIs.
4677      *
4678      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4679      * .value[0].i32: the number of times that the animation is played.\n
4680      *
4681      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4682      * .value[0].i32: the number of times that the animation is played.\n
4683      *
4684     */
4685     NODE_IMAGE_ANIMATOR_ITERATION = 19006,
4686 
4687     /**
4688      * @brief Defines the name of the checkboxgroup.
4689      * This attribute can be set, reset, and obtained as required through APIs.
4690      *
4691      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4692      * .string: component name. \n
4693      * \n
4694      * Format of the return value {@link ArkUI_AttributeItem}:\n
4695      * .string: component name. \n
4696      *
4697      * @since 15
4698      */
4699     NODE_CHECKBOX_GROUP_NAME  = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,
4700 
4701     /**
4702      * @brief Defines whether the checkboxgroup is selected.
4703      * This attribute can be set, reset, and obtained as required through APIs.
4704      *
4705      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4706      * .value[0].i32: whether the checkboxgroup is selected.
4707      * The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b> means the opposite. \n
4708      * \n
4709      * Format of the return value {@link ArkUI_AttributeItem}:\n
4710      * .value[0].i32: The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b> means the opposite. \n
4711      *
4712      * @since 15
4713      */
4714     NODE_CHECKBOX_GROUP_SELECT_ALL,
4715 
4716     /**
4717      * @brief Defines the color of the checkboxgroup when it is selected.
4718      * This attribute can be set, reset, and obtained as required through APIs.
4719      *
4720      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4721      * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format,
4722      * for example, <b>0xFF1122FF</b>. \n
4723      * \n
4724      * Format of the return value {@link ArkUI_AttributeItem}:\n
4725      * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4726      *
4727      * @since 15
4728      */
4729     NODE_CHECKBOX_GROUP_SELECTED_COLOR,
4730     /**
4731      * @brief Defines the border color of the checkboxgroup when it is not selected.
4732      * This attribute can be set, reset, and obtained as required through APIs.
4733      *
4734      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4735      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
4736      * \n
4737      * Format of the return value {@link ArkUI_AttributeItem}:\n
4738      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4739      *
4740      * @since 15
4741      */
4742     NODE_CHECKBOX_GROUP_UNSELECTED_COLOR,
4743 
4744     /**
4745      * @brief Defines the internal icon style of the checkboxgroup.
4746      * This attribute can be set, reset, and obtained as required through APIs.
4747      *
4748      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4749      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
4750      * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
4751      * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
4752      * \n
4753      * Format of the return value {@link ArkUI_AttributeItem}:\n
4754      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
4755      * .value[1].f32: size of the internal mark, in vp. \n
4756      * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
4757      *
4758      * @since 15
4759      */
4760     NODE_CHECKBOX_GROUP_MARK,
4761 
4762     /**
4763      * @brief Defines the shape of the checkboxgroup.
4764      * This attribute can be set, reset, and obtained as required through APIs.
4765      *
4766      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4767      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
4768      * \n
4769      * Format of the return value {@link ArkUI_AttributeItem}:\n
4770      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
4771      *
4772      * @since 15
4773      */
4774     NODE_CHECKBOX_GROUP_SHAPE,
4775 
4776     /**
4777      * @brief Defines the alignment mode of the child components in the container. This attribute can be set, reset,
4778      * and obtained as required through APIs.
4779      *
4780      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4781      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
4782      * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
4783      * \n
4784      * Format of the return value {@link ArkUI_AttributeItem}:\n
4785      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
4786      *
4787      */
4788     NODE_STACK_ALIGN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_STACK,
4789 
4790     /**
4791      * @brief Defines the scrollbar status. This attribute can be set, reset, and obtained as required through APIs.
4792      *
4793      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4794      * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. The default value is
4795      * <b>ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO</b>. \n
4796      * \n
4797      * Format of the return value {@link ArkUI_AttributeItem}:\n
4798      * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. \n
4799      *
4800      */
4801     NODE_SCROLL_BAR_DISPLAY_MODE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
4802     /**
4803      * @brief Defines the width of the scrollbar. This attribute can be set, reset, and obtained as required
4804      * through APIs.
4805      *
4806      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4807      * .value[0].f32: width of the scrollbar, in vp. The default value is <b>4</b>. \n
4808      * \n
4809      * Format of the return value {@link ArkUI_AttributeItem}:\n
4810      * .value[0].f32: width of the scrollbar, in vp. \n
4811      *
4812      */
4813     NODE_SCROLL_BAR_WIDTH,
4814     /**
4815      * @brief Defines the color of the scrollbar. This attribute can be set, reset, and obtained as required
4816      * through APIs.
4817      *
4818      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4819      * .data[0].u32: color of the scrollbar, in 0xARGB format. \n
4820      * \n
4821      * Format of the return value {@link ArkUI_AttributeItem}:\n
4822      * .data[0].u32: color of the scrollbar, in 0xARGB format. \n
4823      *
4824      */
4825     NODE_SCROLL_BAR_COLOR,
4826     /**
4827      * @brief Defines the scroll direction. This attribute can be set, reset, and obtained as required through APIs.
4828      *
4829      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4830      * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}.
4831      * The default value is <b>ARKUI_SCROLL_DIRECTION_VERTICAL</b>. \n
4832      * \n
4833      * Format of the return value {@link ArkUI_AttributeItem}:\n
4834      * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}. \n
4835      *
4836      */
4837     NODE_SCROLL_SCROLL_DIRECTION,
4838     /**
4839      * @brief Defines the effect used at the edges of the component when the boundary of the scrollable content is
4840      * reached. This attribute can be set, reset, and obtained as required through APIs.
4841      *
4842      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4843      * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
4844      * The parameter type is {@link ArkUI_EdgeEffect}. The default value is <b>ARKUI_EDGE_EFFECT_NONE</b>.\n
4845      * .value[1]?.i32: whether to enable the scroll effect when the component content size is smaller than the
4846      * component itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the
4847      * opposite. The default value is <b>1</b>. \n
4848      * .value[2]?.i32: direction in which the effect takes effect. The parameter type is {@link ArkUI_EffectEdge}.
4849      * The default value is <b>ARKUI_EFFECT_EDGE_START | ARKUI_EFFECT_EDGE_END</b>. This parameter is supported since
4850      * API version 16. \n
4851      * \n
4852      * Format of the return value {@link ArkUI_AttributeItem}:\n
4853      * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
4854      * The parameter type is {@link ArkUI_EdgeEffect}. \n
4855      * .value[1].i32: whether to enable the scroll effect when the component content size is smaller than the component
4856      * itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the opposite. \n
4857      * .value[2].i32: edge for which the effect takes effect when the boundary of the scrollable content is reached.
4858      * The parameter type is {@link ArkUI_EffectEdge}. This parameter is supported since API version 16. \n
4859      *
4860      */
4861     NODE_SCROLL_EDGE_EFFECT,
4862     /**
4863      * @brief Defines whether to support scroll gestures. When this attribute is set to <b>false</b>, scrolling by
4864      * finger or mouse is not supported, but the scroll controller API is not affected.
4865      *
4866      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4867      * .value[0].i32: whether to support scroll gestures. The default value is <b>true</b>. \n
4868      * \n
4869      * Format of the return value {@link ArkUI_AttributeItem}:\n
4870      * .value[0].i32: whether to support scroll gestures. \n
4871      *
4872      */
4873     NODE_SCROLL_ENABLE_SCROLL_INTERACTION,
4874     /**
4875      * @brief Defines the friction coefficient. It applies only to gestures in the scrolling area, and it affects only
4876      * indirectly the scroll chaining during the inertial scrolling process.
4877      *
4878      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4879      * .value[0].f32: friction coefficient. The default value is <b>0.6</b> for non-wearable devices and <b>0.9</b>
4880      * for wearable devices. \n
4881      * \n
4882      * Format of the return value {@link ArkUI_AttributeItem}:\n
4883      * .value[0].f32: friction coefficient.
4884      *
4885      */
4886     NODE_SCROLL_FRICTION,
4887     /**
4888      * @brief Defines the scroll snapping mode. This attribute can be set, reset, and obtained as required through APIs.
4889      *
4890      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4891      * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
4892      * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
4893      * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
4894      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
4895      * start edge and the first snap point. The default value is <b>true</b>. It is valid only when there are multiple
4896      * snap points.\n
4897      * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
4898      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
4899      * end edge and the last snap point. The default value is <b>true</b>. It is valid only when there are multiple
4900      * snap points.\n
4901      * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an
4902      * edge to which the <b><Scroll></b> component can scroll.  \n
4903      * \n
4904      * Format of the return value {@link ArkUI_AttributeItem}:\n
4905      * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
4906      * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
4907      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
4908      * start edge and the first snap point.\n
4909      * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
4910      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
4911      * end edge and the last snap point.\n
4912      * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an edge
4913      * to which the <b><Scroll></b> component can scroll. \n
4914      *
4915      */
4916     NODE_SCROLL_SNAP,
4917 
4918     /**
4919      * @brief Defines the nested scrolling options. This attribute can be set, reset, and obtained as required
4920      * through APIs.
4921      *
4922      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4923      * .value[0].i32: nested scrolling option when the component scrolls forward.
4924      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
4925      * .value[1].i32: nested scrolling option when the component scrolls backward.
4926      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
4927      * \n
4928      * Format of the return value {@link ArkUI_AttributeItem}:\n
4929      * .value[0].i32: nested scrolling option when the component scrolls forward.
4930      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
4931      * .value[1].i32: nested scrolling option when the component scrolls backward.
4932      * The parameter type is {@link ArkUI_ScrollNestedMode}.
4933      *
4934      */
4935     NODE_SCROLL_NESTED_SCROLL,
4936     /**
4937      * @brief Defines the specified position to scroll to. This attribute can be set, reset, and obtained as required
4938      * through APIs.
4939      *
4940      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4941      * .value[0].f32: horizontal scrolling offset, in vp. \n
4942      * .value[1].f32: vertical scrolling offset, in vp. \n
4943      * .value[2]?.i32: scrolling duration, in milliseconds. Optional. \n
4944      * .value[3]?.i32: scrolling curve. Optional. The parameter type is {@link ArkUI_AnimationCurve}.
4945      * The default value is <b>ARKUI_CURVE_EASE</b>. \n
4946      * .value[4]?.i32: whether to enable the default spring animation. Optional. The default value <b>0</b> means not
4947      * to enable the default spring animation. \n
4948      * .value[5]?.i32: Optional value, sets whether scrolling can cross the boundary. \n
4949      * \n
4950      * Format of the return value {@link ArkUI_AttributeItem}:\n
4951      * .value[0].f32: horizontal scrolling offset, in vp. \n
4952      * .value[1].f32: vertical scrolling offset, in vp. \n
4953      *
4954      */
4955     NODE_SCROLL_OFFSET,
4956 
4957     /**
4958      * @brief Defines the edge position to scroll to. This attribute can be set and obtained as required through APIs.
4959      *
4960      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4961      * .value[0].i32: edge position to scroll to. The parameter type is {@link ArkUI_ScrollEdge}. \n
4962      * \n
4963      * Format of the return value {@link ArkUI_AttributeItem}:\n
4964      * .value[0].i32: whether the container at the edge position. The value <b>-1</b> means that the container is not
4965      * at the edge position. If the container is at the edge position, the parameter type is {@link ArkUI_ScrollEdge}.
4966      *
4967      */
4968     NODE_SCROLL_EDGE,
4969 
4970     /**
4971      * @brief Defines whether to enable the swipe-to-turn-pages feature. This attribute can be set, reset, and obtained
4972      * as required through APIs.
4973      *
4974      * If both <b>enablePaging</b> and <b>scrollSnap</b> are set, <b>scrollSnap</b> takes effect, but
4975      * <b>enablePaging</b> does not. \n
4976      * \n
4977      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4978      * .value[0].i32: whether to enable the swipe-to-turn-pages feature. The default value is <b>false</b>. \n
4979      * \n
4980      * Format of the return value {@link ArkUI_AttributeItem}:\n
4981      * .value[0].i32: whether to enable the swipe-to-turn-pages feature. \n
4982      *
4983      */
4984     NODE_SCROLL_ENABLE_PAGING,
4985 
4986     /**
4987      * @brief Scroll to the next or previous page.
4988      *
4989      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4990      * .value[0].i32 Indicates whether to scroll to next page. Value 0 indicates scroll to next page and value 1
4991      * indicates scroll to previous page. \n
4992      * .value[1]?.i32 Indicates whether to enable animation. Value 1 indicates enable and 0 indicates disable. \n
4993      *
4994      */
4995     NODE_SCROLL_PAGE,
4996 
4997     /**
4998      * @brief Scroll a specified distance.
4999      *
5000      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5001      * .value[0].f32:Horizontal scrolling distance in vp; \n
5002      * .value[1].f32: Vertical scrolling distance in vp; \n
5003      *
5004      */
5005     NODE_SCROLL_BY,
5006 
5007     /**
5008      * @brief Performs inertial scrolling based on the initial velocity passed in.
5009      *
5010      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5011      * .value[0].f32: Initial velocity of inertial scrolling. Unit: vp/s. If the value specified is 0, it is
5012      * considered as invalid, and the scrolling for this instance will not take effect. If the value is positive,
5013      * the scroll will move downward; if the value is negative, the scroll will move upward. \n
5014      *
5015      * @since 13
5016      */
5017     NODE_SCROLL_FLING,
5018 
5019     /**
5020     * @brief Sets the fading effect for the edges of scrollable components.
5021     *
5022     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
5023     * .value[0].i32: whether to enable the fading effect on edges. The value 0 means to disable the fading effect,
5024     * and 1 means to enable it.
5025     * .value[1]?.f32: length of the fading effect on edges, in vp. Default value: 32.
5026     *
5027     * Format of the return value {@link ArkUI_AttributeItem}:
5028     * .value[0].i32: whether the fading effect on edges is enabled. The value 0 means that the fading effect is
5029     * disabled, and 1 means that it is enabled.
5030     * .value[1].f32: length of the fading effect on edges, in vp.
5031     *
5032     * @since 14
5033     */
5034     NODE_SCROLL_FADING_EDGE,
5035 
5036     /**
5037      * @brief Obtains the total size of all child components when fully expanded in the scrollable component.
5038      *
5039      * Format of the return value {@link ArkUI_AttributeItem}:\n
5040      * .value[0].f32: total width of all child components when fully expanded in the scrollable component.
5041      *                The default unit is vp. \n
5042      * .value[1].f32: total height of all child components when fully expanded in the scrollable component.
5043      *                The default unit is vp. \n
5044      * When <b>NODE_PADDING</b>, <b>NODE_MARGIN</b>, or <b>NODE_BORDER_WIDTH</b> is set, the values are rounded to the
5045      * nearest pixel when being converted from vp to px.
5046      * The returned values are calculated based on these rounded pixel values. \n
5047      *
5048      * @since 14
5049      */
5050     NODE_SCROLL_SIZE,
5051 
5052     /**
5053      * @brief Sets the offset from the start of the scrollable components content.
5054      *
5055      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5056      * .value[0].f32: offset from the start of the content, in vp. \n
5057      * \n
5058      * Format of the return value {@link ArkUI_AttributeItem}:\n
5059      * .value[0].f32: offset from the start of the content, in vp. \n
5060      *
5061      * @since 15
5062      */
5063     NODE_SCROLL_CONTENT_START_OFFSET,
5064 
5065     /**
5066      * @brief Sets the offset from the end of the scrollable components content.
5067      *
5068      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5069      * .value[0].f32: offset from the end of the content, in vp. \n
5070      * \n
5071      * Format of the return value {@link ArkUI_AttributeItem}:\n
5072      * .value[0].f32: offset from the end of the content, in vp. \n
5073      *
5074      * @since 15
5075      */
5076     NODE_SCROLL_CONTENT_END_OFFSET,
5077 
5078     /**
5079      * @brief Defines the maximum starting fling speed of the scrollable when the fling animation starts.
5080      * This attribute can be set, reset, and obtained as required through APIs.
5081      *
5082      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
5083      * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
5084      * \n
5085      * Format of the return value {@link ArkUI_AttributeItem}: \n
5086      * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
5087      *
5088      * @since 18
5089      */
5090     NODE_SCROLL_FLING_SPEED_LIMIT = 1002019,
5091 
5092     /**
5093      * @brief Defines the clip mode of the scrollable.
5094      * This attribute can be set, reset, and obtained as required through APIs.
5095      *
5096      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
5097      * .value[0].i32: clip content mode, The parameter type is {@link ArkUI_ContentClipMode}. \n
5098      * \n
5099      * Format of the return value {@link ArkUI_AttributeItem}: \n
5100      * .value[0].i32: clip content mode, The parameter type is {@link ArkUI_ContentClipMode}. \n
5101      *
5102      * @since 18
5103      */
5104     NODE_SCROLL_CLIP_CONTENT = 1002020,
5105 
5106     /**
5107      * @brief Defines whether the scrollable scrolls back to top when status bar is clicked.
5108      * This attribute can be set, reset, and obtained as required through APIs.
5109      *
5110      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
5111      * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked.
5112      * The value <b>1</b> means to scroll back to top, and <b>0</b> means the opposite. The default value is <b>0/b>. \n
5113      * \n
5114      * Format of the return value {@link ArkUI_AttributeItem}: \n
5115      * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked. \n
5116      *
5117      * @since 15
5118      */
5119     NODE_SCROLL_BACK_TO_TOP = 1002021,
5120 
5121     /**
5122      * @brief Defines the direction in which the list items are arranged. This attribute can be set, reset, and
5123      * obtained as required through APIs.
5124      *
5125      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5126      * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}.
5127      * The default value is <b>ARKUI_AXIS_VERTICAL</b>. \n
5128      * \n
5129      * Format of the return value {@link ArkUI_AttributeItem}:\n
5130      * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}. \n
5131      *
5132      */
5133     NODE_LIST_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
5134     /**
5135      * @brief Defines whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
5136      * component. This attribute can be set, reset, and obtained as required through APIs.
5137      *
5138      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5139      * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
5140      * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
5141      * {@link ArkUI_StickyStyle}. The default value is <b>ARKUI_STICKY_STYLE_NONE</b>. \n
5142      * \n
5143      * Format of the return value {@link ArkUI_AttributeItem}:\n
5144      * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
5145      * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
5146      * {@link ArkUI_StickyStyle}.
5147      *
5148      */
5149     NODE_LIST_STICKY,
5150     /**
5151      * @brief Defines the spacing between list items. This attribute can be set, reset, and obtained as required
5152      * through APIs.
5153      *
5154      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5155      * .value[0].f32: spacing between list items along the main axis. The default value is <b>0</b>. \n
5156      * \n
5157      * Format of the return value {@link ArkUI_AttributeItem}:\n
5158      * .value[0].f32: spacing between list items along the main axis. \n
5159      *
5160      */
5161     NODE_LIST_SPACE,
5162     /**
5163     * @brief Defines the list adapter. The attribute can be set, reset, and obtained as required through APIs.
5164     *
5165     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5166     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
5167     */
5168     NODE_LIST_NODE_ADAPTER,
5169 
5170     /**
5171      * @brief Sets the number of cached items in the list adapter.
5172      * This attribute can be set, reset, and obtained as required through APIs.
5173      *
5174      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5175      * .value[0].i32: number of cached items in the list adapter. \n
5176      * .value[1]?.i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>0</b> means
5177      * to show cached items. The default value is <b>0</b>. This parameter is supported since API version 15. \n
5178      * \n
5179      * Format of the return value {@link ArkUI_AttributeItem}:\n
5180      * .value[0].i32: number of cached items in the list adapter. \n
5181      * .value[1].i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>0</b> means
5182      * to show cached items. This parameter is supported since API version 15. \n
5183      *
5184      */
5185     NODE_LIST_CACHED_COUNT,
5186 
5187     /**
5188      * @brief Scroll to the specified index.
5189      *
5190      * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
5191      * lead to performance issues when loading a large number of items.\n
5192      * \n
5193      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5194      * .value[0].i32:The index value of the target element to be slid to in the current container.\n
5195      * .value[1]?.i32:Set whether there is an action when sliding to the index value of a list item in the list, where
5196      * 1 indicates an action and 0 indicates no action. Default value: 0。\n
5197      * .value[2]?.i32:Specify the alignment of the sliding element with the current container,The parameter type is
5198      * {@link ArkUI_ScrollAlignment}, default value is ARKUI_SCROLL_ALIGNMENT_START. \n
5199      * .value[3]?.f32: extra offset, in vp. The default value is <b>0</b>.
5200      * This parameter is supported since API version 15. \n
5201      *
5202      */
5203     NODE_LIST_SCROLL_TO_INDEX,
5204     /**
5205      * @brief Sets the alignment mode of list items along the cross axis when the cross-axis width of the list is
5206      * greater than the cross-axis width of list items multiplied by the value of lanes.
5207      * This attribute can be set, reset, and obtained as required through APIs.
5208      *
5209      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5210      * .value[0].i32: alignment mode of list items along the cross axis.
5211      * The parameter type is {@link ArkUI_ListItemAlignment}. \n
5212      * \n
5213      * Format of the return value {@link ArkUI_AttributeItem}:\n
5214      * .value[0].i32: alignment mode of list items along the cross axis.
5215      * The parameter type is {@link ArkUI_ListItemAlignment}. \n
5216     */
5217     NODE_LIST_ALIGN_LIST_ITEM,
5218 
5219     /**
5220      * @brief Set the default spindle size for the List subcomponent.
5221      *
5222      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5223      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
5224      * \n
5225      * Format of the return value {@link ArkUI_AttributeItem}:\n
5226      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
5227      */
5228     NODE_LIST_CHILDREN_MAIN_SIZE = 1003007,
5229 
5230     /**
5231      * @brief Set the index value of the item displayed at the start of the viewport
5232      * when the current List is first loaded.This attribute can be set, reset, and obtained as required through APIs.
5233      *
5234      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5235      * .value[0].i32: index value of the item displayed at
5236      * the start of the viewport when the current List is loaded for the first time. Default value: 0.\n
5237      * \n
5238      * Format of the return value {@link ArkUI_AttributeItem}:\n
5239      * .value[0].i32: index value of the item displayed at
5240      * the start of the viewport when the current List is loaded for the first time. Default value: 0.\n
5241      */
5242     NODE_LIST_INITIAL_INDEX = 1003008,
5243     /**
5244      * @brief sets the ListItem splitter style. By default, there is no splitter.
5245      * This attribute can be set, reset, and obtained as required through APIs.
5246      *
5247      * Attribute setting method parameter {@link ArkUI_AttributeItem} Format: \n
5248      *.value[0].u32: divider color, type 0xargb; \n
5249      *.value[1].f32: dividing line width; \n
5250      *.value[2].f32: the distance between the divider and the beginning of the side of the list, unit vp; \n
5251      *.value[3].f32: the distance between the divider and the end of the side of the list (unit: vp). \n
5252      * \n
5253      * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
5254      *.value[0].u32: divider color, type 0xargb; \n
5255      *.value[1].f32: dividing line width; \n
5256      *.value[2].f32: the distance between the divider and the beginning of the side of the list, unit vp; \n
5257      *.value[3].f32: the distance between the divider and the end of the side of the list (unit: vp). \n
5258      *
5259      */
5260     NODE_LIST_DIVIDER = 1003009,
5261 
5262     /**
5263      * @brief Scrolls to the item with the specified index in the specified list item group.
5264      *
5265      * When <b>smooth</b> is set to <b>true</b>, all passed items are loaded and counted in layout calculation.
5266      * This may result in performance issues if a large number of items are involved. \n
5267      * \n
5268      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5269      * .value[0].i32: index of the target list item group in the current list. \n
5270      *.value[1].i32: index of the target list item in the list item group. \n
5271      * .value[2]?.i32: whether to enable the smooth animation for scrolling to the item with the specified index.
5272      * The value <b>1</b> means to enable the animation, and <b>0</b> means the opposite.
5273      * The default value is <b>0</b>. \n
5274      * .value[3]?.i32: how the item to scroll to is aligned with the container. The parameter type is
5275      * {@link ArkUI_ScrollAlignment}. The default value is <b>ARKUI_SCROLL_ALIGNMENT_START</b>. \n
5276      *
5277      * @since 15
5278      */
5279     NODE_LIST_SCROLL_TO_INDEX_IN_GROUP = 1003010,
5280 
5281     /**
5282      * @brief Sets the number of lanes in the list.
5283      * This attribute can be set, reset, and obtained as required through APIs.
5284      *
5285      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5286      * .value[0].u32: number of lanes in the list. If the maximum and minimum lane widths are set, setting the number
5287      * of lanes will not take effect. \n
5288      * .value[1]?.f32: minimum lane width, in vp. \n
5289      * .value[2]?.f32: maximum column width, in vp. \n
5290      * .value[3]?.f32: lane spacing, in vp. \n
5291      * \n
5292      * Format of the return value {@link ArkUI_AttributeItem}:\n
5293      * .value[0].u32: number of lanes in the list. \n
5294      * .value[1].f32: minimum lane width, in vp. \n
5295      * .value[2].f32: maximum column width, in vp. \n
5296      * .value[3].f32: lane spacing, in vp. \n \n
5297      *
5298      * @since 15
5299      */
5300     NODE_LIST_LANES = 1003011,
5301 
5302     /**
5303      * @brief Sets the list snap alignment mode.
5304      *
5305      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5306      * .value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
5307      * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
5308      * \n
5309      * Format of the return value {@link ArkUI_AttributeItem}:\n
5310      *.value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
5311      *
5312      * @since 15
5313      */
5314     NODE_LIST_SCROLL_SNAP_ALIGN = 1003012,
5315 
5316     /**
5317      * @brief Sets whether to maintain the visible content's position when data is inserted or deleted outside the
5318      * display area of the <b>List</b> component.
5319      *
5320      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5321      * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
5322      * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
5323      * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
5324      * \n
5325      * Format of the return value {@link ArkUI_AttributeItem}:\n
5326      * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
5327      * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
5328      * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
5329      *
5330      * @since 15
5331      */
5332     NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION = 1003013,
5333 
5334     /**
5335      * @brief Defines whether to enable loop playback for the swiper.
5336      * This attribute can be set, reset, and obtained as required through APIs.
5337      *
5338      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5339      * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
5340      * means the opposite. The default value is <b>1/b>. \n
5341      * \n
5342      * Format of the return value {@link ArkUI_AttributeItem}:\n
5343      * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
5344      * means the opposite. The default value is <b>1</b>. \n
5345      *
5346      */
5347     NODE_SWIPER_LOOP = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
5348     /**
5349      * @brief Defines whether to enable automatic playback for child component switching in the swiper.
5350      * This attribute can be set, reset, and obtained as required through APIs.
5351      *
5352      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5353      * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b>
5354      * means to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5355      * \n
5356      * .value[1]?.i32: whether to stop automatic playback when the user touches the screen. The value <b>1</b> means
5357      * to stop automatic playback, and <b>0</b> means the opposite. The default value is <b>1</b>. This parameter is
5358      * supported since API version 16. \n
5359      * \n
5360      * Format of the return value {@link ArkUI_AttributeItem}:\n
5361      * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b> means
5362      * to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5363      * .value[1].i32: whether to stop automatic playback when the user touches the screen. The value <b>1</b> means to
5364      * stop automatic playback, and <b>0</b> means the opposite. This parameter is supported since API version 16. \n
5365      *
5366      */
5367     NODE_SWIPER_AUTO_PLAY,
5368     /**
5369      * @brief Defines whether to enable the navigation point indicator for the swiper. This attribute can be set,
5370      * reset, and obtained as required through APIs.
5371      *
5372      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5373      * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
5374      * navigation point indicator, and <b>0</b> means the opposite. The default value is <b>1</b>. \n
5375      * \n
5376      * Format of the return value {@link ArkUI_AttributeItem}:\n
5377      * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
5378      * navigation point indicator, and <b>0</b> means the opposite. The default value is <b>1</b>. \n
5379      *
5380      */
5381     NODE_SWIPER_SHOW_INDICATOR,
5382     /**
5383      * @brief Defines the interval for automatic playback. This attribute can be set, reset, and obtained as required
5384      * through APIs.
5385      *
5386      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5387      * .value[0].f32: interval for automatic playback, in milliseconds. \n
5388      * \n
5389      * Format of the return value {@link ArkUI_AttributeItem}:\n
5390      * .value[0].f32: interval for automatic playback, in milliseconds. \n
5391      *
5392      */
5393     NODE_SWIPER_INTERVAL,
5394     /**
5395      * @brief Defines whether vertical swiping is used for the swiper. This attribute can be set, reset, and obtained
5396      * as required through APIs.
5397      *
5398      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5399      * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
5400      * <b>0</b> means the opposite. The default value is <b>0</b>. \n
5401      * \n
5402      * Format of the return value {@link ArkUI_AttributeItem}:\n
5403      * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
5404      * <b>0</b> means the opposite. The default value is <b>0</b>. \n
5405      *
5406      */
5407     NODE_SWIPER_VERTICAL,
5408 
5409     /**
5410      * @brief Defines the duration of the animation for switching child components. This attribute can be set, reset,
5411      * and obtained as required through APIs.
5412      *
5413      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5414      * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
5415      * <b>400</b>. \n
5416      * \n
5417      * Format of the return value {@link ArkUI_AttributeItem}:\n
5418      * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
5419      * <b>400</b>. \n
5420      *
5421      */
5422     NODE_SWIPER_DURATION,
5423 
5424     /**
5425      * @brief Defines the animation curve for the swiper. This attribute can be set, reset, and obtained as required
5426      * through APIs.
5427      *
5428      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5429      * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
5430      * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
5431      * \n
5432      * Format of the return value {@link ArkUI_AttributeItem}:\n
5433      * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
5434      * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
5435      *
5436      */
5437     NODE_SWIPER_CURVE,
5438 
5439     /**
5440      * @brief Defines the spacing between child components in the swiper.
5441      * This attribute can be set, reset, and obtained as required through APIs.
5442      *
5443      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5444      * .value[0].f32: spacing between child components. \n
5445      * \n
5446      * Format of the return value {@link ArkUI_AttributeItem}:\n
5447      * .value[0].f32: spacing between child components. \n
5448      *
5449      */
5450     NODE_SWIPER_ITEM_SPACE,
5451 
5452     /**
5453      * @brief Defines the index of the child component currently displayed in the swiper.
5454      * This attribute can be set, reset, and obtained as required through APIs.
5455      *
5456      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5457      * .value[0].i32: index value of the child component. \n
5458      * .value[1]?.i32: animation mode, the parameter type is {@link ArkUI_SwiperAnimationMode}. \n
5459      * The default value is ARKUI_SWIPER_NO_ANIMATION. This parameter is valid only for the current call. \n
5460      * This parameter is supported since API version 15. \n
5461      * \n
5462      * Format of the return value {@link ArkUI_AttributeItem}:\n
5463      * .value[0].i32: index value of the child component. \n
5464      *
5465      */
5466     NODE_SWIPER_INDEX,
5467 
5468     /**
5469      * @brief Defines the number of elements to display per page.
5470      * This attribute can be set, reset, and obtained as required through APIs.
5471      *
5472      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5473      * .value[0].i32: index value of the child component. \n
5474      * \n
5475      * Format of the return value {@link ArkUI_AttributeItem}:\n
5476      * .value[0].i32: index value of the child component. \n
5477      *
5478      */
5479     NODE_SWIPER_DISPLAY_COUNT,
5480 
5481     /**
5482      * @brief Defines whether to disable the swipe feature.
5483      * This attribute can be set, reset, and obtained as required through APIs.
5484      *
5485      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5486      * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable
5487      * the swipe feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5488      * \n
5489      * Format of the return value {@link ArkUI_AttributeItem}:\n
5490      * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable the swipe
5491      * feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5492      *
5493      */
5494     NODE_SWIPER_DISABLE_SWIPE,
5495 
5496     /**
5497      * @brief Defines whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
5498      * This attribute can be set, reset, and obtained as required through APIs.
5499      *
5500      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5501      * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
5502      * The parameter type is {@link ArkUI_SwiperArrow}.\n
5503      * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
5504      * \n
5505      * Format of the return value {@link ArkUI_AttributeItem}:\n
5506      * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
5507      * The parameter type is {@link ArkUI_SwiperArrow}.\n
5508      * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
5509      *
5510      */
5511     NODE_SWIPER_SHOW_DISPLAY_ARROW,
5512 
5513     /**
5514      * @brief Defines the effect used at the edges of the swiper when the boundary of the scrollable content is reached.
5515      * This attribute can be set, reset, and obtained as required through APIs.
5516      *
5517      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5518      * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
5519      * The parameter type is {@link ArkUI_EdgeEffect}.\n
5520      * The default value is <b>ARKUI_EDGE_EFFECT_SPRING</b>. \n
5521      * \n
5522      * Format of the return value {@link ArkUI_AttributeItem}:\n
5523      * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
5524      * The parameter type is {@link ArkUI_EdgeEffect}. \n
5525      *
5526      */
5527     NODE_SWIPER_EDGE_EFFECT_MODE,
5528 
5529     /**
5530     * @brief Defines the swiper adapter. The attribute can be set, reset, and obtained as required through APIs.
5531     *
5532     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5533     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
5534     */
5535     NODE_SWIPER_NODE_ADAPTER,
5536 
5537     /**
5538     * @brief Sets the number of cached items in the swiper adapter.
5539     * This attribute can be set, reset, and obtained as required through APIs.
5540     *
5541     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5542     * .value[0].i32: number of cached items in the swiper adapter. \n
5543     */
5544     NODE_SWIPER_CACHED_COUNT,
5545 
5546     /**
5547      * @brief Defines the front margin of the wiper.
5548      * The attribute can be set, reset, and obtained as required through APIs.
5549      *
5550      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5551      * .value[0].f32: the front margin. The unit is vp. The default value is <b>0.0</b>\n
5552      * .value[1]?.i32: whether to ignore blanks, the default value is 0.
5553      * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
5554      * Format of the return value {@link ArkUI_AttributeItem}:\n
5555      * .value[0].f32: the front margin, the unit is vp. \n
5556      * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
5557      * the opposite. \n
5558      */
5559     NODE_SWIPER_PREV_MARGIN,
5560 
5561     /**
5562      * @brief Defines the back margin of the wiper.
5563      * The attribute can be set, reset, and obtained as required through APIs.
5564      *
5565      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5566      * .value[0].f32: the back margin. The unit is vp. The default value is <b>0.0</b>\n
5567      * .value[1]?.i32: whether to ignore blanks, the default value is 0.
5568      * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
5569      * Format of the return value {@link ArkUI_AttributeItem}:\n
5570      * .value[0].f32: the back margin, the unit is vp. \n
5571      * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
5572      * the opposite. \n
5573      */
5574     NODE_SWIPER_NEXT_MARGIN,
5575 
5576     /**
5577      * @brief Defines the navigation indicator type of the swiper.
5578      * The attribute can be set, reset, and obtained as required through APIs.
5579      *
5580      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5581      * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
5582      * .object: The parameter type is {@link ArkUI_SwiperIndicator}.\n
5583      * Format of the return value {@link ArkUI_AttributeItem}:\n
5584      * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
5585      * .object: The parameter type is {@link ArkUI_SwiperIndicator}.\n
5586      *
5587      */
5588     NODE_SWIPER_INDICATOR,
5589     /**
5590      * @brief Set the nested scrolling mode for the Swiper component and parent component.
5591      *
5592      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5593      * .value[0].i32:Nested scrolling patterns for Swiper components and parent components. The parameter type is
5594      * {@link ArkUI_SwiperNestedScrollMode} \n
5595      * The default value is <b>ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY<b> \n
5596      * \n
5597      * Format of the return value {@link ArkUI_AttributeItem}:\n
5598      * .value[0].i32:Nested scrolling patterns for Swiper components and parent components. The parameter type is
5599      * {@link ArkUI_SwiperNestedScrollMode} \n
5600      */
5601     NODE_SWIPER_NESTED_SCROLL,
5602 
5603     /**
5604      * @brief Set the switcher component to flip to the specified page.
5605      *
5606      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5607      * .value[0].i32:Specify the index value of the page in Swiper.\n
5608      * .value[1]?.i32:Set whether there is an animation effect when flipping to the specified page. 1 indicates active
5609      * effect, 0 indicates no active effect, default value is 0。\n
5610      */
5611     NODE_SWIPER_SWIPE_TO_INDEX,
5612 
5613     /**
5614     * @brief Set to disable component navigation point interaction function。
5615     *
5616     * Property setting method parameter {@link ArkUI-AttributeItem} format: \n
5617     * .value[0].i32:Set to disable the interaction function of component navigation points. When set to true, it
5618     * indicates that the navigation points are interactive. The default value is true. \n
5619     * The return value of the attribute acquisition method is in the format of {@ link ArkUI-AttributeItem}: \n
5620     * .value[0].i32:Set to disable component navigation point interaction. \n
5621     */
5622     NODE_SWIPER_INDICATOR_INTERACTIVE,
5623 
5624     /**
5625      * @brief Sets the page flipping mode using the mouse wheel.
5626      *
5627      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5628      * .value[0].i32: page flipping mode using the mouse wheel. The parameter type is {@link ArkUI_PageFlipMode}. \n
5629      * \n
5630      * Format of the return value {@link ArkUI_PageFlipMode}:\n
5631      * .value[0].i32: page flipping mode using the mouse wheel. \n
5632      *
5633      * @since 15
5634      */
5635     NODE_SWIPER_PAGE_FLIP_MODE,
5636 
5637     /**
5638      * @brief: Set the delineation component of the ListItem, supporting property settings, property resets, and
5639      * property acquisition interfaces.
5640      *
5641      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
5642      * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
5643      * \n
5644      * The return value of the attribute acquisition method {@link ArkUI_AttributeItem} format: \n
5645      * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
5646      *
5647      */
5648     NODE_LIST_ITEM_SWIPE_ACTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM,
5649 
5650     /**
5651      * @brief Defines the header of the list item group.
5652      * This attribute can be set, reset, and obtained as required through APIs.
5653      *
5654      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5655      * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
5656      * \n
5657      * Format of the return value {@link ArkUI_AttributeItem}:\n
5658      * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
5659      *
5660      */
5661     NODE_LIST_ITEM_GROUP_SET_HEADER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM_GROUP,
5662     /**
5663      * @brief Defines the footer of the list item group. This attribute can be set, reset, and obtained as
5664      * required through APIs.
5665      *
5666      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5667      * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
5668      * \n
5669      * Format of the return value {@link ArkUI_AttributeItem}:\n
5670      * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
5671      *
5672      */
5673     NODE_LIST_ITEM_GROUP_SET_FOOTER,
5674     /**
5675      * @brief Defines the style of the divider for the list items. This attribute can be set, reset, and obtained
5676      * as required through APIs.
5677      *
5678      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5679      * .value[0].u32: color of the divider, in 0xARGB format.\n
5680      * .value[1].f32: stroke width of the divider, in vp.\n
5681      * .value[2].f32: distance between the divider and the start of the list, in vp.\n
5682      * .value[3].f32: distance between the divider and the end of the list, in vp.\n \n
5683      * \n
5684      * Format of the return value {@link ArkUI_AttributeItem}:\n
5685      * .value[0].u32: color of the divider, in 0xARGB format.\n
5686      * .value[1].f32: stroke width of the divider, in vp.\n
5687      * .value[2].f32: distance between the divider and the start of the list, in vp.\n
5688      * .value[3].f32: distance between the divider and the end of the list, in vp.\n \n
5689      *
5690      */
5691     NODE_LIST_ITEM_GROUP_SET_DIVIDER,
5692 
5693     /**
5694      * @brief Set the default spindle size for the ListItem Group subcomponent.
5695      *
5696      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5697      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
5698      * \n
5699      * Format of the return value {@link ArkUI_AttributeItem}:\n
5700      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
5701      */
5702     NODE_LIST_ITEM_GROUP_CHILDREN_MAIN_SIZE = 1005003,
5703 
5704     /**
5705     * @brief Defines the list item group adapter.
5706     * This attribute can be set, reset, and obtained as required through APIs.
5707     *
5708     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5709     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
5710     * \n
5711     * Format of the return value {@link ArkUI_AttributeItem}:\n
5712     * .object: {@link ArkUI_NodeAdapter} object. \n
5713     *
5714     * @since 15
5715     */
5716     NODE_LIST_ITEM_GROUP_NODE_ADAPTER = 1005004,
5717 
5718     /**
5719      * @brief Defines the horizontal alignment mode of child components in the column.
5720      * This attribute can be set, reset, and obtained as required through APIs.
5721      *
5722      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5723      * .value[0].i32: horizontal alignment mode of child components.
5724      * The parameter type is {@link ArkUI_HorizontalAlignment}.\n
5725      * Default value: <b>ARKUI_HORIZONTAL_ALIGNMENT_CENTER</b>. \n
5726      * \n
5727      * Format of the return value {@link ArkUI_AttributeItem}:\n
5728      * .value[0].i32: horizontal alignment mode of child components.
5729      * The parameter type is {@link ArkUI_HorizontalAlignment}. \n
5730      *
5731      */
5732     NODE_COLUMN_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_COLUMN,
5733     /**
5734      * @brief Defines the vertical alignment mode of child components in the column.
5735      * This attribute can be set, reset, and obtained as required through APIs.
5736      *
5737      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5738      * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}.\n
5739      * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
5740      * \n
5741      * Format of the return value {@link ArkUI_AttributeItem}:\n
5742      * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}. \n
5743      *
5744      */
5745     NODE_COLUMN_JUSTIFY_CONTENT,
5746 
5747     /**
5748      * @brief Defines the vertical alignment mode of child components in the row.
5749      * This attribute can be set, reset, and obtained as required through APIs.
5750      *
5751      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5752      * .value[0].i32: vertical alignment mode of child components.
5753      * The parameter type is {@link ArkUI_VerticalAlignment}.\n
5754      * Default value: <b>ARKUI_VERTICAL_ALIGNMENT_CENTER</b>. \n
5755      * \n
5756      * Format of the return value {@link ArkUI_AttributeItem}:\n
5757      * .value[0].i32: vertical alignment mode of child components.
5758      * The parameter type is {@link ArkUI_VerticalAlignment}. \n
5759      *
5760      */
5761     NODE_ROW_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_ROW,
5762     /**
5763      * @brief Defines the horizontal alignment mode of child components in the row.
5764      * This attribute can be set, reset, and obtained as required through APIs.
5765      *
5766      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5767      * .value[0].i32: horizontal alignment mode of child components.
5768      * The parameter type is {@link ArkUI_FlexAlignment}.\n
5769      * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
5770      * \n
5771      * Format of the return value {@link ArkUI_AttributeItem}:\n
5772      * .value[0].i32: horizontal alignment mode of child components.
5773      * The parameter type is {@link ArkUI_FlexAlignment}. \n
5774      *
5775      */
5776     NODE_ROW_JUSTIFY_CONTENT,
5777 
5778     /**
5779      * @brief Defines the flex attribute. This attribute can be set, reset, and obtained as required through APIs.
5780      *
5781      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5782      * .value[0]?.i32: direction in which flex items are arranged. The parameter type is {@link ArkUI_FlexDirection}.
5783      * The default value is <b>ARKUI_FLEX_DIRECTION_ROW</b>.\n
5784      * .value[1]?.i32: how the flex items are wrapped. The parameter type is {@link ArkUI_FlexWrap}.
5785      * The default value is <b>ARKUI_FLEX_WRAP_NO_WRAP</b>.\n
5786      * .value[2]?.i32: alignment mode along the main axis. The parameter type is {@link ArkUI_FlexAlignment}.
5787      * The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
5788      * .value[3]?.i32: alignment mode along the cross axis. The parameter type is {@link ArkUI_ItemAlignment}.
5789      * The default value is <b>ARKUI_ITEM_ALIGNMENT_START</b>.\n
5790      * .value[4]?.i32: alignment mode along the cross axis for multi-line content. The parameter type is
5791      * {@link ArkUI_FlexAlignment}. The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
5792      * \n
5793      * Format of the return value {@link ArkUI_AttributeItem}:\n
5794      * .value[0].i32: direction in which flex items are arranged. \n
5795      * .value[1].i32: how the flex items are wrapped. \n
5796      * .value[2].i32: alignment mode along the main axis. \n
5797      * .value[3].i32: alignment mode along the cross axis. \n
5798      * .value[4].i32: alignment mode along the cross axis for multi-line content.\n
5799      *
5800      */
5801     NODE_FLEX_OPTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_FLEX,
5802 
5803     /**
5804      * @brief Sets whether the component is being refreshed.
5805      * This attribute can be set and obtained as required through APIs.
5806      *
5807      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5808      * .value[0].i32: The parameter type is 1 or 0.
5809      * \n
5810      * Format of the return value {@link ArkUI_AttributeItem}:\n
5811      * .value[0].i32: The parameter type is 1 or 0.
5812      *
5813      */
5814     NODE_REFRESH_REFRESHING = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
5815     /**
5816      * @brief Sets the custom content in the pull-down area.
5817      * This attribute can be set, reset, and obtained as required through APIs.
5818      *
5819      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5820      * .object: The parameter type is {@Link ArkUI_NodeHandle}.
5821      *
5822      */
5823     NODE_REFRESH_CONTENT,
5824     /**
5825      * @brief Set the pull-down hand coefficient.
5826      * This attribute can be set, reset, and obtained as required through APIs.
5827      *
5828      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5829      * .value[0].f32:Pull-down hand coefficient, valid value between 0 and 1.
5830      * \n
5831      * Format of the return value {@link ArkUI_AttributeItem}:\n
5832      * .value[0].f32:Pull-down hand coefficient, valid value between 0 and 1.
5833      *
5834      */
5835     NODE_REFRESH_PULL_DOWN_RATIO = 1009002,
5836     /**
5837      * @brief Sets the pull-down offset that initiates a refresh.
5838      * This attribute can be set, reset, and obtained as required through APIs.
5839      *
5840      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5841      * .value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
5842      * \n
5843      * Format of the return value {@link ArkUI_AttributeItem}:\n
5844      * .value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
5845      *
5846      */
5847     NODE_REFRESH_OFFSET = 1009003,
5848     /**
5849      * @brief Sets whether to initiate a refresh when the pull-down distance exceeds the value of <b>refreshOffset</b>.
5850      * This attribute can be set, reset, and obtained as required through APIs.
5851      *
5852      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5853      * .value[0].i32: whether to initiate a refresh. The value <b>true</b> means to initiate a refresh, and
5854      * <b>false</b> means the opposite.
5855      * \n
5856      * Format of the return value {@link ArkUI_AttributeItem}:\n
5857      * .value[0].i32: whether to initiate a refresh. The value <b>1</b> means to initiate a refresh, and
5858      * <b>0</b> means the opposite.
5859      *
5860      */
5861     NODE_REFRESH_PULL_TO_REFRESH = 1009004,
5862 
5863     /**
5864      * @brief Defines the main axis direction of the <b><WaterFlow></b> component layout.
5865      * This attribute can be set, reset, and obtained as required through APIs.
5866      *
5867      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5868      * .value[0].i32: main axis direction. The parameter type is {@Link ArkUI_FlexDirection}.
5869      * \n
5870      * Format of the return value {@link ArkUI_AttributeItem}:\n
5871      * .value[0].i32: main axis direction. The parameter type is {@Link ArkUI_FlexDirection}.
5872      *
5873      */
5874     NODE_WATER_FLOW_LAYOUT_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
5875 
5876     /**
5877      * @brief Sets the number of columns in the water flow layout. If this parameter is not set, one column is used
5878      * by default. This attribute can be set, reset, and obtained as required through APIs.
5879      * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
5880      * component's full width, the second column 1/4, and the third column 2/4.
5881      * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
5882      * columns based on the specified column width <b>track-size</b>.
5883      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
5884      * or a valid number.
5885      *
5886      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5887      * .string: number of columns in the layout.\n
5888      * \n
5889      * Format of the return value {@link ArkUI_AttributeItem}:\n
5890      * .string: number of columns in the layout.\n
5891      *
5892      */
5893     NODE_WATER_FLOW_COLUMN_TEMPLATE,
5894 
5895     /**
5896      * @brief Sets the number of rows in the water flow layout. If this parameter is not set, one row is used
5897      * by default. This attribute can be set, reset, and obtained as required through APIs.
5898      * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
5899      * component's full height, the second row 1/4, and the third row 2/4.
5900      * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
5901      * based on the specified row height <b>track-size</b>.
5902      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
5903      * or a valid number.
5904      *
5905      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5906      * .string: number of rows in the layout. \n
5907      * \n
5908      * Format of the return value {@link ArkUI_AttributeItem}:\n
5909      * .string: number of rows in the layout. \n
5910      *
5911      */
5912     NODE_WATER_FLOW_ROW_TEMPLATE,
5913 
5914     /**
5915      * @brief Sets the gap between columns.
5916      * This attribute can be set, reset, and obtained as required through APIs.
5917      *
5918      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5919      * .value[0].f32: gap between columns, in vp.\n
5920      * \n
5921      * Format of the return value {@link ArkUI_AttributeItem}:\n
5922      * .value[0].f32: gap between columns, in vp.\n
5923      *
5924      */
5925     NODE_WATER_FLOW_COLUMN_GAP,
5926 
5927     /**
5928      * @brief Sets the gap between rows.
5929      * This attribute can be set, reset, and obtained as required through APIs.
5930      *
5931      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5932      * .value[0].f32: gap between lines, in vp.\n
5933      * \n
5934      * Format of the return value {@link ArkUI_AttributeItem}:\n
5935      * .value[0].f32: gap between lines, in vp.\n
5936      *
5937      */
5938     NODE_WATER_FLOW_ROW_GAP,
5939 
5940     /**
5941      * @brief Defines the water flow section configuration.
5942      * This attribute can be set, reset, and obtained as required through APIs.
5943      *
5944      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5945      * .value[0].i32: An index calculated from 0 is converted to an integer,
5946      * indicating that you want to start changing the position of the group.
5947      * .object: {@ArkUI_WaterFlowSectionOption} object.\n
5948      * \n
5949      * Format of the return value {@link ArkUI_AttributeItem}:\n
5950      * .object: {@ArkUI_WaterFlowSectionOption} object.\n
5951      *
5952      */
5953     NODE_WATER_FLOW_SECTION_OPTION,
5954 
5955     /**
5956     * @brief Defines the water flow adapter. The attribute can be set, reset, and obtained as required through APIs.
5957     *
5958     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5959     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
5960     */
5961     NODE_WATER_FLOW_NODE_ADAPTER,
5962 
5963     /**
5964     * @brief Sets the number of cached items in the water flow adapter.
5965     * This attribute can be set, reset, and obtained as required through APIs.
5966     *
5967     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5968     * value[0].i32:number of cached items in the water flow adapter. \n
5969     * .value[1]?.i32:whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
5970     * This parameter is supported since API version 16. \n
5971     * \n
5972     * Format of the return value {@link ArkUI_AttributeItem}:\n
5973     * .value[0].i32: number of cached items in the water flow adapter. \n
5974     * .value[1].i32: whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
5975     * This parameter is supported since API version 16. \n
5976     */
5977     NODE_WATER_FLOW_CACHED_COUNT,
5978 
5979     /**
5980      * @brief Set the custom display component at the end of the waterfall flow component.
5981      *
5982      * Attribute setting method {@link ArkUI_AttributeItem} parameter format: \n
5983      * .object: Parameter type {@link ArkUI_NodeHandle}.
5984      *
5985      */
5986     NODE_WATER_FLOW_FOOTER,
5987 
5988     /**
5989      * @brief Scroll to the specified index.
5990      *
5991      * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
5992      * lead to performance issues when loading a large number of items.\n
5993      * \n
5994      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5995      * .value[0].i32:The index value of the target element to be slid to in the current container.\n
5996      * .value[1]?.i32:Set whether there is an action when sliding to the index value of a list item in the list, where
5997      * 1 indicates an action and 0 indicates no action. Default value is 0。\n
5998      * .value[2]?.i32:Specify the alignment of the sliding element with the current container,The parameter type is
5999      * {@link ArkUI_ScrollAlignment}. Default value is </b>ARKUI_SCROLL_ALIGNMENT_START</b>。\n
6000      *
6001      */
6002     NODE_WATER_FLOW_SCROLL_TO_INDEX,
6003 
6004     /**
6005      * @brief Defines the size constraints to apply to water flow items.
6006      * This attribute can be set, reset, and obtained as required through APIs.
6007      *
6008      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6009      * .value[0].f32: minimum width, in vp.\n
6010      * .value[1].f32: maximum width, in vp.\n
6011      * .value[2].f32: minimum height, in vp.\n
6012      * .value[3].f32: maximum height, in vp.\n
6013      * \n
6014      * Format of the return value {@link ArkUI_AttributeItem}:\n
6015      * .value[0].f32: minimum width, in vp.\n
6016      * .value[1].f32: maximum width, in vp.\n
6017      * .value[2].f32: minimum height, in vp.\n
6018      * .value[3].f32: maximum height, in vp.\n
6019      *
6020      */
6021     NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE,
6022 
6023     /**
6024      * @brief Defines the layout mode of the <b><WaterFlow></b> component.
6025      * This attribute can be set, reset, and obtained as required through APIs.
6026      *
6027      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6028      * .value[0].i32: waterflow layout mode. The parameter type is {@Link ArkUI_WaterFlowLayoutMode}.
6029      * \n
6030      * Format of the return value {@link ArkUI_AttributeItem}:\n
6031      * .value[0].i32: waterflow layout mode. The parameter type is {@Link ArkUI_WaterFlowLayoutMode}.
6032      * @since 18
6033      */
6034     NODE_WATER_FLOW_LAYOUT_MODE,
6035 
6036     /**
6037      * @brief Set the auxiliary line in the RelativeContaine container, supporting property setting,
6038      * property reset and property acquisition interfaces.
6039      *
6040      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
6041      * .object: Auxiliary lines within the RelativeContaine container: \n
6042      *\n
6043      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
6044      * .object: Auxiliary lines within the RelativeContaine container: \n
6045      *
6046      */
6047     NODE_RELATIVE_CONTAINER_GUIDE_LINE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RELATIVE_CONTAINER,
6048 
6049     /**
6050      * @brief Sets the barrier within the RelativeContaine container and supports property setting,
6051      * property reset and property acquisition interfaces.
6052      *
6053      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
6054      * .object: Auxiliary lines within the RelativeContaine container: \n
6055      *\n
6056      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
6057      * .object: Barrier within the RelativeContaine container: \n
6058      *
6059      */
6060     NODE_RELATIVE_CONTAINER_BARRIER,
6061 
6062     /**
6063      * @brief Sets the number of columns in the grid layout. If this parameter is not set, one column is used
6064      * by default. This attribute can be set, reset, and obtained as required through APIs.
6065      * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
6066      * component's full width, the second column 1/4, and the third column 2/4.
6067      * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
6068      * columns based on the specified column width <b>track-size</b>.
6069      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
6070      * or a valid number.
6071      *
6072      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6073      * .string: number of columns in the layout.\n
6074      * \n
6075      * Format of the return value {@link ArkUI_AttributeItem}:\n
6076      * .string: number of columns in the layout.\n
6077      *
6078      */
6079     NODE_GRID_COLUMN_TEMPLATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,
6080 
6081     /**
6082      * @brief Sets the number of rows in the grid layout. If this parameter is not set, one row is used
6083      * by default. This attribute can be set, reset, and obtained as required through APIs.
6084      * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
6085      * component's full height, the second row 1/4, and the third row 2/4.
6086      * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
6087      * based on the specified row height <b>track-size</b>.
6088      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
6089      * or a valid number.
6090      *
6091      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6092      * .string: number of rows in the layout. \n
6093      * \n
6094      * Format of the return value {@link ArkUI_AttributeItem}:\n
6095      * .string: number of rows in the layout. \n
6096      *
6097      */
6098     NODE_GRID_ROW_TEMPLATE,
6099 
6100     /**
6101      * @brief Sets the gap between columns. This attribute can be set, reset, and obtained as required through APIs.
6102      *
6103      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6104      * .value[0].f32: gap between columns, in vp.\n
6105      * \n
6106      * Format of the return value {@link ArkUI_AttributeItem}:\n
6107      * .value[0].f32: gap between columns, in vp.\n
6108      *
6109      */
6110     NODE_GRID_COLUMN_GAP,
6111 
6112     /**
6113      * @brief Sets the gap between rows. This attribute can be set, reset, and obtained as required through APIs.
6114      *
6115      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6116      * .value[0].f32: gap between lines, in vp.\n
6117      * \n
6118      * Format of the return value {@link ArkUI_AttributeItem}:\n
6119      * .value[0].f32: gap between lines, in vp.\n
6120      *
6121      */
6122     NODE_GRID_ROW_GAP,
6123 
6124     /**
6125     * @brief Defines the grid adapter. The attribute can be set, reset, and obtained as required through APIs.
6126     *
6127     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6128     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
6129     */
6130     NODE_GRID_NODE_ADAPTER,
6131 
6132     /**
6133     * @brief Sets the number of cached items in the grid adapter.
6134     * This attribute can be set, reset, and obtained as required through APIs.
6135     *
6136     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6137     * .value[0].i32: number of cached items in the grid adapter. \n
6138     */
6139     NODE_GRID_CACHED_COUNT,
6140 
6141     /**
6142     * @brief Defines the column width of the text picker.
6143     * This attribute can be set, reset, and obtained as required through APIs.
6144     *
6145     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6146     * .value[0].f32: percentage of total width. The default value is that all colulmns are equal width.\n
6147     * .value[1]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
6148     * .value[2]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
6149     * ...\n
6150     * .value[n]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
6151     * \n
6152     * Format of the return value {@link ArkUI_AttributeItem}:\n
6153     * value[0].f32: percentage of total width.\n
6154     * value[1].f32: percentage of total width.\n
6155     * value[2].f32: percentage of total width.\n
6156     * ...\n
6157     * value[n].f32: percentage of total width.\n
6158     *
6159     * @since 18
6160     */
6161     NODE_TEXT_PICKER_COLUMN_WIDTHS = 15009,
6162 } ArkUI_NodeAttributeType;
6163 
6164 #define MAX_COMPONENT_EVENT_ARG_NUM 12
6165 /**
6166  * @brief Defines the parameter type of the component callback event.
6167  *
6168  * @since 12
6169  */
6170 typedef struct {
6171     /** Data array object. */
6172     ArkUI_NumberValue data[MAX_COMPONENT_EVENT_ARG_NUM];
6173 } ArkUI_NodeComponentEvent;
6174 
6175 /**
6176  * @brief Defines the string type parameter used by the component callback event.
6177  *
6178  * @since 12
6179  */
6180 typedef struct {
6181     /** String. */
6182     const char* pStr;
6183 } ArkUI_StringAsyncEvent;
6184 
6185 /**
6186  * @brief Defines a hybrid data structure for component events.
6187  *
6188  * @since 15
6189  */
6190 typedef struct {
6191     /** String data */
6192     const char* pStr;
6193     /** Extended string data */
6194     const char* pExtendStr;
6195     /** Numeric data */
6196     int32_t number;
6197 } ArkUI_TextChangeEvent;
6198 
6199 /**
6200  * @brief Enumerates the event types supported by the NativeNode component.
6201  *
6202  * @since 12
6203  */
6204 typedef enum {
6205     /**
6206      * @brief Defines the gesture event type.
6207      *
6208      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6209      * {@link ArkUI_UIInputEvent}.
6210      */
6211     NODE_TOUCH_EVENT = 0,
6212 
6213     /**
6214      * @brief Defines the mount event.
6215      *
6216      * This event is triggered when the component is mounted and displayed. \n
6217      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6218      * {@link ArkUI_NodeComponentEvent}. \n
6219      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6220      */
6221     NODE_EVENT_ON_APPEAR,
6222     /**
6223      * @brief Defines the unmount event.
6224      *
6225      * This event is triggered when the component is unmounted and hidden. \n
6226      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6227      * {@link ArkUI_NodeComponentEvent}. \n
6228      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6229      */
6230     NODE_EVENT_ON_DISAPPEAR,
6231 
6232     /**
6233      * @brief Defines the area change event.
6234      *
6235      * This event is triggered when the component's size, position, or any other attribute that may
6236      * affect its display area changes. \n
6237      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6238      *  {@link ArkUI_NodeComponentEvent}. \n
6239      * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
6240      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: original width of the target element, in vp.
6241      * The value type is number. \n
6242      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: original height of the target element, in vp.
6243      * The value type is number. \n
6244      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: original X coordinate of the target element's upper left corner
6245      * relative to the parent element's, in vp. The value type is number. \n
6246      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: original Y coordinate of the target element's upper left corner
6247      * relative to the parent element's, in vp. The value type is number. \n
6248      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: original X coordinate of the target element's upper left corner
6249      * relative to the page's, in vp. The value type is number. \n
6250      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: original Y coordinate of the target element's upper left corner
6251      * relative to the page's, in vp. The value type is number. \n
6252      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: new width of the target element, in vp. The value is a number. \n
6253      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: new height of the target element, in vp. The value is a number. \n
6254      * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: new X coordinate of the target element's upper left corner relative
6255      * to the parent element's, in vp. The value type is number. \n
6256      * <b>ArkUI_NodeComponentEvent.data[9].f32</b>: new Y coordinate of the target element's upper left corner relative
6257      * to the parent element's, in vp. The value type is number. \n
6258      * <b>ArkUI_NodeComponentEvent.data[10].f32</b>: new X coordinate of the target element's upper left corner relative
6259      * to the page's, in vp. The value type is number. \n
6260      * <b>ArkUI_NodeComponentEvent.data[11].f32</b>: new Y coordinate of the target element's upper left corner relative
6261      * to the page's, in vp. The value type is number. \n
6262      */
6263     NODE_EVENT_ON_AREA_CHANGE,
6264     /**
6265      * @brief Defines the focus event.
6266      *
6267      * This event is triggered when the component obtains the focus. \n
6268      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6269      * {@link ArkUI_NodeComponentEvent}. \n
6270      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6271      */
6272     NODE_ON_FOCUS,
6273     /**
6274      * @brief Defines the blur event.
6275      *
6276      * This event is triggered when the component loses the focus. \n
6277      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6278      * {@link ArkUI_NodeComponentEvent}. \n
6279      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6280      */
6281     NODE_ON_BLUR,
6282     /**
6283      * @brief Defines the click event.
6284      *
6285      * This event is triggered when the component is clicked. \n
6286      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6287      * {@link ArkUI_NodeComponentEvent}. \n
6288      * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
6289      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: X coordinate of the click relative to the upper left corner of the
6290      * clicked component's original area, in vp. \n
6291      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Y coordinate of the click relative to the upper left corner of the
6292      * clicked component's original area, in vp. \n
6293      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: event timestamp. It is the interval between the time when the event
6294      * is triggered and the time when the system starts, in microseconds. \n
6295      * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: event input device. The value <b>1</b> indicates the mouse,
6296      * <b>2</b> indicates the touchscreen, and <b>4</b> indicates the key. \n
6297      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: X coordinate of the click relative to the upper left corner of the
6298      * application window, in vp. \n
6299      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: Y coordinate of the click relative to the upper left corner of the
6300      * application window, in vp. \n
6301      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: X coordinate of the click relative to the upper left corner of the
6302      * application screen, in vp. \n
6303      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: Y coordinate of the click relative to the upper left corner of the
6304      * application screen, in vp. \n
6305      */
6306     NODE_ON_CLICK,
6307     /**
6308      * @brief Defines event interception.
6309      *
6310      * This event is triggered when the component is touched. \n
6311      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6312      * {@link ArkUI_UIInputEvent}. \n
6313      */
6314     NODE_ON_TOUCH_INTERCEPT,
6315     /**
6316      * @brief Defines the visible area change event.
6317      *
6318      * This event is triggered when the ratio of the component's visible area to its total area is greater than or less
6319      * than the threshold.
6320      * Before registering this event, you must set <b>NODE_VISIBLE_AREA_CHANGE_RATIO</b>. \n
6321      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6322      * {@link ArkUI_NodeComponentEvent}. \n
6323      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
6324      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
6325      * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates a
6326      * decrease. \n
6327      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area when this
6328      * callback is invoked. \n
6329      */
6330     NODE_EVENT_ON_VISIBLE_AREA_CHANGE,
6331     /**
6332      * @brief Defines the event triggered when the mouse pointer is moved over or away from the component.
6333      *
6334       \n
6335      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6336      * {@link ArkUI_NodeComponentEvent}. \n
6337      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6338      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: whether the mouse pointer is hovered over the component.
6339      * The value <b>1</b> indicates that the mouse pointer is hovered over the component, and <b>0</b> indicates that
6340      * the mouse pointer is moved away from the component. \n
6341      */
6342     NODE_ON_HOVER,
6343     /**
6344      * @brief Defines the click event.
6345      *
6346      * This event is triggered when the component is clicked by a mouse device button or when the mouse pointer moves
6347      * within the component. \n
6348      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6349      * {@link ArkUI_UIInputEvent}. \n
6350      */
6351     NODE_ON_MOUSE,
6352     /**
6353      * @brief Defines the attach event.
6354      *
6355      * This event is triggered when the component is attached. \n
6356      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6357      * {@link ArkUI_NodeComponentEvent}. \n
6358      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6359      */
6360     NODE_EVENT_ON_ATTACH,
6361     /**
6362      * @brief Defines the detach event.
6363      *
6364      * This event is triggered when the component is detached. \n
6365      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6366      * {@link ArkUI_NodeComponentEvent}. \n
6367      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6368      */
6369     NODE_EVENT_ON_DETACH,
6370 
6371     /**
6372      * @brief Defines the accessibility action event.
6373      *
6374      * This event is triggered when The accessibility operation type has been set and
6375      * corresponding operations have been carried out. \n
6376      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6377      * {@link ArkUI_NodeComponentEvent}. \n
6378      * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
6379      * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: accessibility action type,the union type is
6380      * {@link ArkUI_AccessibilityActionType} \n
6381      *
6382      */
6383     NODE_ON_ACCESSIBILITY_ACTIONS = 13,
6384 
6385     /**
6386      * @brief Notifies the listener of the interaction state prior to a drop and drop operation.
6387      *
6388      * This event is triggered when a drag operation is about to start on a draggable item. \n
6389      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6390      * {@link ArkUI_NodeComponentEvent}. \n
6391      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6392      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: corresponds to {@link ArkUI_PreDragStatus}. \n
6393      */
6394     NODE_ON_PRE_DRAG = 14,
6395     /**
6396      * @brief Called when the user starts to drag an ite
6397      *
6398      * A drag operation is recognized only when the dragged item is moved far enough. \n
6399      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
6400      * {@link ArkUI_NodeEvent} object. \n
6401      */
6402     NODE_ON_DRAG_START = 15,
6403     /**
6404      * @brief Called when a dragged item enters the boundaries of the current component.
6405      *
6406      * The current component refers to the component that listens for this event. \n
6407      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
6408      * {@link ArkUI_NodeEvent} object. \n
6409      */
6410     NODE_ON_DRAG_ENTER = 16,
6411     /**
6412      * @brief Called  when a dragged item moves in the current component.
6413      *
6414      * The current component refers to the component that listens for this event. \n
6415      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
6416      * {@link ArkUI_NodeEvent} object. \n
6417      */
6418     NODE_ON_DRAG_MOVE = 17,
6419     /**
6420      * @brief Called when a dragged item leaves the boundaries of the current component.
6421      *
6422      * The current component refers to the component that listens for this event. \n
6423      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
6424      * {@link ArkUI_NodeEvent} object. \n
6425      */
6426     NODE_ON_DRAG_LEAVE = 18,
6427     /**
6428      * @brief Called when a dragged item is dropped on the current component.
6429      * The component can obtain the drag data for processing through the callback.
6430      *
6431      * The current component refers to the component that listens for this event. \n
6432      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
6433      * {@link ArkUI_NodeEvent} object. \n
6434      */
6435     NODE_ON_DROP = 19,
6436     /**
6437      * @brief Called when a drag operation ends.
6438      * The drag source can obtain the drag result by registering this callback.
6439      *
6440      * A drag operation ends when the dragged item is released.
6441      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
6442      * {@link ArkUI_NodeEvent} object. \n
6443      */
6444     NODE_ON_DRAG_END = 20,
6445     /**
6446      * @brief Defines the event triggered when a key event occurs.
6447      *
6448      * The callback can be triggered during interactions with a focused window using an external keyboard or other input
6449      * device. \n
6450      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6451      * {@link ArkUI_NodeComponentEvent}. \n
6452      *
6453      * @since 14
6454      */
6455     NODE_ON_KEY_EVENT = 21,
6456     /**
6457      * @brief Defines the event triggered before the input method responds to the key action.
6458      *
6459      * If the return value of this callback is <b>true</b>, it is considered that the key event has been consumed, and
6460      * subsequent event callbacks (<b>keyboardShortcut</b>, input method events, <b>onKeyEvent</b>) will be intercepted
6461      * and no longer triggered.
6462      * The callback can be triggered during interactions with a focused window using an external keyboard or other input
6463      * device. \n
6464      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6465      * {@link ArkUI_NodeComponentEvent}. \n
6466      *
6467      * @since 14
6468      */
6469     NODE_ON_KEY_PRE_IME = 22,
6470     /**
6471      * @brief Defines the event triggered when the bound component receives a focus axis event after gaining focus.
6472      *
6473      * The event callback is triggered by interactions with a joystick and a focused component. \n
6474      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6475      * {@link ArkUI_UIInputEvent}. \n
6476      *
6477      * @since 15
6478      */
6479     NODE_ON_FOCUS_AXIS = 23,
6480 
6481     /**
6482      * @brief Dispatch key event on the component node.
6483      *
6484      * When the component node receives a key event, this callback will be triggered instead of dispatching event to its
6485      * children. \n
6486      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6487      * {@link ArkUI_NodeComponentEvent}. \n
6488      *
6489      * @since 15
6490      */
6491     NODE_DISPATCH_KEY_EVENT = 24,
6492 
6493     /**
6494      * @brief Defines the event triggered when the bound component receives an axis event.
6495      *
6496      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6497      * {@link ArkUI_UIInputEvent}. \n
6498      *
6499      * @since 17
6500      */
6501     NODE_ON_AXIS = 25,
6502 
6503     /**
6504      * @brief Defines the event triggered when the bound component is clicked.
6505      *
6506      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6507      * {@link ArkUI_UIInputEvent}.  \n
6508      *
6509      * @since 18
6510      */
6511     NODE_ON_CLICK_EVENT = 26,
6512 
6513     /**
6514      * @brief Defines the event triggered when the mouse pointer hovers over or moves away from a component.
6515      *
6516      * This event is triggered when the mouse pointer enters or leaves the component's bounding box. \n
6517      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6518      * {@link ArkUI_UIInputEvent}. \n
6519      *
6520      *@since 17
6521      */
6522     NODE_ON_HOVER_EVENT = 27,
6523 
6524     /**
6525      * @brief Sets the callback for the NODE_EVENT_ON_VISIBLE_AREA_CHANGE event, which limits the callback interval.
6526      *
6527      * The callback is triggered when the ratio of the component's visible area to its total area is greater than or
6528      * less than the threshold. Before registering the callback, you must configure the threshold and update interval
6529      * using <b>NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO</b>. \n
6530      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6531      * {@link ArkUI_NodeComponentEvent}. \n
6532      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
6533      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
6534      * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates
6535      * a decrease. \n
6536      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area
6537      * when this callback is invoked. \n
6538      *
6539      * @since 17
6540      */
6541     NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_EVENT = 28,
6542 
6543     /**
6544      * @brief Defines the hover event.
6545      *
6546      * The event is triggered when the pointer is hovered by a pen device.
6547      * within the component. \n
6548      * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
6549      * {@link ArkUI_UIInputEvent} object. \n
6550      * @since 15
6551     */
6552     NODE_ON_HOVER_MOVE = 29,
6553 
6554     /**
6555      * @brief Triggers onDetectResultUpdate callback
6556      * when the text is set to TextDataDetectorConfig and recognized successfully.
6557      *
6558      * Trigger this event when TextDataDetectorConfig is set and recognized successfully.\n
6559      * When the event callback occurs, the event parameter{@link ArkUI_NodeEvent}The union type in the object is
6560      * {@link ArkUI_StringAsyncEvent}.\n
6561      * {@link ArkUI_StringAsyncEvent}contains 1 parameter\n
6562      * <b>ArkUI_StringAsyncEvent.pStr</b>:Indicates the result of text recognition, in Json format.\n
6563      *
6564      */
6565     NODE_TEXT_ON_DETECT_RESULT_UPDATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
6566     /**
6567      * @brief Defines the image loading success event.
6568      *
6569      * This event is triggered when an image is successfully loaded or decoded. \n
6570      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6571      * {@link ArkUI_NodeComponentEvent}. \n
6572      * {@link ArkUI_NodeComponentEvent} contains nine parameters:\n
6573      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: loading status. The value <b>0</b> indicates that the image is
6574      * loaded successfully, and the value <b>1</b> indicates that the image is decoded successfully. \n
6575      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: width of the image, in px. \n
6576      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: height of the image, in px. \n
6577      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: width of the component, in px. \n
6578      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: height of the component, in px. \n
6579      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: offset of the rendered content relative to the component on the
6580      * x-axis, in px. \n
6581      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: offset of the rendered content relative to the component on the
6582      * y-axis, in px. \n
6583      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: actual rendered width of the image, in px. \n
6584      * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: actual rendered height of the image, in px. \n
6585      */
6586     NODE_IMAGE_ON_COMPLETE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
6587     /**
6588      * @brief Defines the image loading failure event.
6589      *
6590      * This event is triggered when an error occurs during image loading. \n
6591      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6592      * {@link ArkUI_NodeComponentEvent}. \n
6593      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6594      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>error code:\n
6595      * 401: The image could not be obtained because the image path is invalid. \n
6596      * 103101: The image format is not supported. \n
6597      */
6598     NODE_IMAGE_ON_ERROR,
6599     /**
6600      * @brief Defines the SVG animation playback completion event.
6601      *
6602      * This event is triggered when the animation playback in the loaded SVG image is complete. \n
6603      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6604      * {@link ArkUI_NodeComponentEvent}. \n
6605      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6606      */
6607     NODE_IMAGE_ON_SVG_PLAY_FINISH,
6608     /**
6609      * @brief Defines image download process event.
6610      *
6611      * This event is triggered when downloading webpage images from page components.\n
6612      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6613      * {@link ArkUI_NodeComponentEvent}. \n
6614      * {@link ArkUI_NodeComponentEvent} contains two parameter:\n
6615      * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: the num of bytes downloaded. \n
6616      * <b>ArkUI_NodeComponentEvent.data[1].u32</b>: the total number of bytes to download. \n
6617      */
6618     NODE_IMAGE_ON_DOWNLOAD_PROGRESS,
6619     /**
6620      * @brief Defines the event triggered when the toggle status changes.
6621      *
6622       \n
6623      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6624      * {@link ArkUI_NodeComponentEvent}. \n
6625      * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
6626      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: toggle status. <b>1</b>: on; <b>0</b>: off.
6627      *
6628      */
6629     NODE_TOGGLE_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
6630     /**
6631      * @brief Defines the event triggered when the text input content changes.
6632      *
6633       \n
6634      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6635      * {@link ArkUI_StringAsyncEvent}. \n
6636      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6637      * <b>ArkUI_StringAsyncEvent.pStr</b>: text input.
6638      *
6639      */
6640     NODE_TEXT_INPUT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
6641     /**
6642      * @brief Defines the event triggered when the Enter key of the text input method is pressed.
6643      *
6644       \n
6645      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6646      * {@link ArkUI_NodeComponentEvent}. \n
6647      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6648      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Enter key type of the input method.
6649      *
6650      */
6651     NODE_TEXT_INPUT_ON_SUBMIT,
6652     /**
6653      * @brief Defines the event triggered when the cut button on the pasteboard, which displays when the text box
6654      * is long pressed, is clicked.
6655      *
6656       \n
6657      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6658      * {@link ArkUI_StringAsyncEvent}. \n
6659      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6660      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
6661      *
6662      */
6663     NODE_TEXT_INPUT_ON_CUT,
6664     /**
6665      * @brief Defines the event triggered when the paste button on the pasteboard, which displays when the text box
6666      * is long pressed, is clicked.
6667      *
6668       \n
6669      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6670      * {@link ArkUI_StringAsyncEvent}. \n
6671      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6672      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
6673      *
6674      */
6675     NODE_TEXT_INPUT_ON_PASTE,
6676     /**
6677      * @brief Defines the event triggered when the text selection position changes.
6678      *
6679       \n
6680      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6681      * {@link ArkUI_NodeComponentEvent}. \n
6682      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
6683      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
6684      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
6685      *
6686      */
6687     NODE_TEXT_INPUT_ON_TEXT_SELECTION_CHANGE,
6688 
6689     /**
6690      * @brief Defines the event triggered when the input status changes.
6691      *
6692       \n
6693      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6694      * {@link ArkUI_NodeComponentEvent}. \n
6695      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6696      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
6697      *
6698      */
6699     NODE_TEXT_INPUT_ON_EDIT_CHANGE,
6700 
6701     /**
6702       * @brief textInput This event is triggered when the input content changes.
6703       *
6704       * Conditions for triggering this event: When the input content changes. \n
6705       * When the event callback occurs, the union type in the event parameter
6706       * {@link ArkUI_NodeEvent} object is {@link ArkUI_NodeComponentEvent}. \n
6707       * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
6708       * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
6709       * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
6710       *
6711       */
6712     NODE_TEXT_INPUT_ON_CONTENT_SIZE_CHANGE,
6713 
6714     /**
6715      * @brief Defines the event triggered when matching with the regular expression specified by
6716      * <b>NODE_TEXT_INPUT_INPUT_FILTER</b> fails.
6717      *
6718       \n
6719      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6720      * {@link ArkUI_StringAsyncEvent}. \n
6721      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6722      * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
6723      *
6724      */
6725     NODE_TEXT_INPUT_ON_INPUT_FILTER_ERROR,
6726 
6727     /**
6728      * @brief This callback is triggered when the text content is scrolled.
6729      *
6730       \n
6731      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6732      * {@link ArkUI_NodeComponentEvent}. \n
6733      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
6734      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizontal offset of the text in the content area. \n
6735      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
6736      * the text in the content area. \n
6737      *
6738      */
6739     NODE_TEXT_INPUT_ON_CONTENT_SCROLL,
6740 
6741     /**
6742      * @brief Defines the event triggered when text is about to be entered.
6743      *
6744      * The event parameter is {@link ArkUI_NodeEvent}. \n
6745      * value.f32: position of the text, with the index of <b>0</b>; obtained using
6746      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
6747      * buffer: string value of the text, with the index of <b>0</b>; obtained using
6748      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
6749      * @return Returns <b>true</b> if the text is entered; returns <b>false</b> otherwise.
6750      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
6751      */
6752     NODE_TEXT_INPUT_ON_WILL_INSERT = 7009,
6753 
6754     /**
6755      * @brief Defines the event triggered when text is entered.
6756      *
6757      * The event parameter is {@link ArkUI_NodeEvent}. \n
6758      * value.f32: position of the text, with the index of <b>0</b>; obtained using
6759      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
6760      * buffer: string value of the text, with the index of <b>0</b>; obtained using
6761      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
6762      */
6763     NODE_TEXT_INPUT_ON_DID_INSERT = 7010,
6764 
6765     /**
6766      * @brief Defines the event triggered when text is about to be deleted.
6767      *
6768      * The event parameter is {@link ArkUI_NodeEvent}. \n
6769      * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
6770      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
6771      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
6772      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
6773      * forward-delete. \n
6774      * buffer: string value of the text, with the index of <b>0</b>; obtained using
6775      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
6776      * @return Returns <b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
6777      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
6778      */
6779     NODE_TEXT_INPUT_ON_WILL_DELETE = 7011,
6780 
6781     /**
6782      * @brief Defines the event triggered when text is deleted.
6783      *
6784      * The event parameter is {@link ArkUI_NodeEvent}. \n
6785      * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
6786      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
6787      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
6788      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
6789      * forward-delete. \n
6790      * buffer: string value of the text, with the index of <b>0</b>; obtained using
6791      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
6792      */
6793     NODE_TEXT_INPUT_ON_DID_DELETE = 7012,
6794 
6795     /**
6796      * @brief Defines the event triggered when content (including preview text) changes in the <b>TextInput</b>
6797      * component.
6798      *
6799      * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
6800      * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
6801      * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
6802      * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
6803      * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextInput</b> component.
6804      *
6805      * @since 15
6806      */
6807     NODE_TEXT_INPUT_ON_CHANGE_WITH_PREVIEW_TEXT = 7013,
6808 
6809     /**
6810      * @brief Defines the event triggered when the input in the text box changes.
6811      *
6812       \n
6813      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6814      * {@link ArkUI_StringAsyncEvent}. \n
6815      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6816      * <b>ArkUI_StringAsyncEvent.pStr</b>: text entered.
6817      *
6818      */
6819     NODE_TEXT_AREA_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
6820     /**
6821      * @brief Defines the event triggered when the paste button on the pasteboard, which displays when the text box is
6822      * long pressed, is clicked.
6823      *
6824       \n
6825      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6826      * {@link ArkUI_StringAsyncEvent}. \n
6827      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6828      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
6829      *
6830      */
6831     NODE_TEXT_AREA_ON_PASTE,
6832     /**
6833      * @brief Defines the event triggered when the text selection position changes.
6834      *
6835       \n
6836      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6837      * {@link ArkUI_NodeComponentEvent}. \n
6838      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
6839      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
6840      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
6841      *
6842      */
6843     NODE_TEXT_AREA_ON_TEXT_SELECTION_CHANGE,
6844     /**
6845      * @brief Defines the event triggered when matching with the regular expression specified by
6846      * <b>NODE_TEXT_AREA_INPUT_FILTER</b> fails.
6847      *
6848       \n
6849      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6850      * {@link ArkUI_StringAsyncEvent}. \n
6851      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6852      * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
6853      *
6854      */
6855     NODE_TEXT_AREA_ON_INPUT_FILTER_ERROR,
6856     /**
6857      * @brief This callback is triggered when the text content is scrolled.
6858      *
6859       \n
6860      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6861      * {@link ArkUI_NodeComponentEvent}. \n
6862      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
6863      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizontal offset of the text in the content area. \n
6864      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
6865      * the text in the content area. \n
6866      *
6867      */
6868     NODE_TEXT_AREA_ON_CONTENT_SCROLL,
6869 
6870     /**
6871      * @brief Defines the event triggered when the input status changes.
6872      *
6873       \n
6874      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
6875      * {@link ArkUI_NodeComponentEvent}. \n
6876      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6877      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
6878      *
6879      */
6880     NODE_TEXT_AREA_ON_EDIT_CHANGE,
6881 
6882     /**
6883      * @brief Defines the event triggered when the Enter key on the keyboard is pressed for the multi-line text box.
6884      *
6885      * This event is not triggered when <b>keyType</b> is <b>ARKUI_ENTER_KEY_TYPE_NEW_LINE</b>. \n
6886      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
6887      * {@link ArkUI_NodeComponentEvent}. \n
6888      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6889      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: type of the Enter key.
6890      *
6891      */
6892     NODE_TEXT_AREA_ON_SUBMIT,
6893 
6894     /**
6895       * @brief textArea This event is triggered when the input content changes.
6896       *
6897       * Conditions for triggering this event: When the input content changes. \n
6898       * When the event callback occurs, the union type in the event parameter {@link ArkUI_NodeEvent} object is \n
6899       * {@link ArkUI_NodeComponentEvent}.\n
6900       * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
6901       * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
6902       * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
6903       *
6904       */
6905     NODE_TEXT_AREA_ON_CONTENT_SIZE_CHANGE,
6906 
6907     /**
6908      * @brief Defines the event triggered when text is about to be entered.
6909      *
6910      * The event parameter is {@link ArkUI_NodeEvent}. \n
6911      * value.f32: position of the text, with the index of <b>0</b>; obtained using
6912      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
6913      * buffer: string value of the text, with the index of <b>0</b>; obtained using
6914      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
6915      * @return Returns <b>true</b> if the text is entered; returns <b>false</b> otherwise.
6916      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
6917      */
6918     NODE_TEXT_AREA_ON_WILL_INSERT = 8008,
6919 
6920     /**
6921      * @brief Defines the event triggered when text is entered.
6922      *
6923      * The event parameter is {@link ArkUI_NodeEvent}. \n
6924      * value.f32: position of the text, with the index of <b>0</b>; obtained using
6925      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
6926      * buffer: string value of the text, with the index of <b>0</b>; obtained using
6927      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
6928      */
6929     NODE_TEXT_AREA_ON_DID_INSERT = 8009,
6930 
6931     /**
6932      * @brief Defines the event triggered when text is about to be deleted.
6933      *
6934      * The event parameter is {@link ArkUI_NodeEvent}. \n
6935      * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
6936      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
6937      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
6938      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
6939      * forward-delete. \n
6940      * buffer: string value of the text, with the index of <b>0</b>; obtained using
6941      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
6942      * @return Returns <b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
6943      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
6944      */
6945     NODE_TEXT_AREA_ON_WILL_DELETE = 8010,
6946 
6947     /**
6948      * @brief Defines the event triggered when text is deleted.
6949      *
6950      * The event parameter is {@link ArkUI_NodeEvent}. \n
6951      * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
6952      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
6953      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
6954      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
6955      * forward-delete. \n
6956      * buffer: string value of the text, with the index of <b>0</b>; obtained using
6957      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
6958      */
6959     NODE_TEXT_AREA_ON_DID_DELETE = 8011,
6960 
6961     /**
6962      * @brief Defines the event triggered when content (including preview text) changes in the <b>TextArea</b>
6963      * component.
6964      *
6965      * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
6966      * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
6967      * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
6968      * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
6969      * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextArea</b> component.
6970      *
6971      * @since 15
6972      */
6973     NODE_TEXT_AREA_ON_CHANGE_WITH_PREVIEW_TEXT = 8012,
6974 
6975     /**
6976      * @brief Defines the event triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX</b> component changes.
6977      *
6978      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6979      * {@link ArkUI_NodeComponentEvent}. \n
6980      * <b>ArkUI_NodeComponentEvent.data[0].i32</b><b>1</b>: selected; <b>0</b>: not selected.\n
6981      */
6982     NODE_CHECKBOX_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,
6983 
6984     /**
6985      * @brief Defines the event triggered when a date is selected in the <b>ARKUI_NODE_DATE_PICKER</b> component.
6986      *
6987       \n
6988      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6989      * {@link ArkUI_NodeComponentEvent}. \n
6990      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
6991      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: year of the selected date. \n
6992      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: month of the selected date. Value range: [0-11]. \n
6993      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: day of the selected date. \n
6994      */
6995     NODE_DATE_PICKER_EVENT_ON_DATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
6996 
6997     /**
6998      * @brief Defines the event triggered when a time is selected in the <b>ARKUI_NODE_TIME_PICKER</b> component.
6999      *
7000       \n
7001      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7002      * {@link ArkUI_NodeComponentEvent}. \n
7003      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7004      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: hour of the selected time. Value range: [0-23]. \n
7005      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: minute of the selected time. Value range: [0-59]. \n
7006      */
7007     NODE_TIME_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
7008 
7009     /**
7010      * @brief Defines the event triggered when an item is selected in the <b>ARKUI_NODE_TEXT_PICKER</b> component.
7011      *
7012       \n
7013      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7014      * {@link ArkUI_NodeComponentEvent}. \n
7015      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7016      * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
7017      */
7018     NODE_TEXT_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,
7019 
7020     /**
7021      * @brief Defines the event triggered when an item is selected and scrolling has stopped in the
7022      * <b>ARKUI_NODE_TEXT_PICKER</b> component.
7023      *
7024      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7025      * {@link ArkUI_NodeComponentEvent}. \n
7026      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7027      * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
7028      *
7029      * @since 14
7030      */
7031     NODE_TEXT_PICKER_EVENT_ON_SCROLL_STOP = 15001,
7032 
7033     /**
7034      * @brief Defines the event triggered when a date is selected in the <b>NODE_CALENDAR_PICKER</b>.
7035      *
7036      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7037      * {@link ArkUI_NodeComponentEvent}. \n
7038      * <b>ArkUI_NodeComponent.data[0].u32</b>: year of the selected date. \n
7039      * <b>ArkUI_NodeComponent.data[1].u32</b>: month of the selected date. \n
7040      * <b>ArkUI_NodeComponent.data[2].u32</b>: day of the selected date. \n
7041      */
7042     NODE_CALENDAR_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
7043 
7044     /**
7045      * @brief Defines the event triggered when the <b>ARKUI_NODE_SLIDER</b> component is dragged or clicked.
7046      *
7047      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7048      * {@link ArkUI_NodeComponentEvent}. \n
7049      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7050      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current slider value. \n
7051      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: state triggered by the event.\n
7052      */
7053     NODE_SLIDER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,
7054 
7055     /**
7056      * @brief Defines the event callback function triggered when an object is dragged or clicked by ARKUI_NODE_RADIO.
7057      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7058      * {@Link ArkUI_NodeComponentEvent}. \n
7059      * {@Link ArkUI_NodeComponentEvent} contains one parameter:\n
7060      * ArkUI_NodeComponentEvent.data[0].i32: option button status. \n
7061      */
7062     NODE_RADIO_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
7063 
7064     /**
7065      * @brief Defines the event callback function triggered when the animation starts to play.
7066      *
7067      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7068      * {@Link ArkUI_NodeComponentEvent}. \n
7069      * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
7070      *
7071     */
7072     NODE_IMAGE_ANIMATOR_EVENT_ON_START = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_ANIMATOR,
7073     /**
7074      * @brief Defines the event callback function triggered when the animation playback is paused.
7075      *
7076      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7077      * {@Link ArkUI_NodeComponentEvent}. \n
7078      * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
7079      *
7080     */
7081     NODE_IMAGE_ANIMATOR_EVENT_ON_PAUSE = 19001,
7082     /**
7083      * @brief Defines the event callback function triggered when the animation playback is repeated.
7084      *
7085      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7086      * {@Link ArkUI_NodeComponentEvent}. \n
7087      * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
7088      *
7089     */
7090     NODE_IMAGE_ANIMATOR_EVENT_ON_REPEAT = 19002,
7091     /**
7092      * @brief Defines the event callback function when the animation playback returns to the initial state.
7093      *
7094      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7095      * {@Link ArkUI_NodeComponentEvent}. \n
7096      * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
7097      *
7098     */
7099     NODE_IMAGE_ANIMATOR_EVENT_ON_CANCEL = 19003,
7100     /**
7101      * @brief Defines the event callback function triggered when the animation playback is complete or stopped.
7102      *
7103      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7104      * {@Link ArkUI_NodeComponentEvent}. \n
7105      * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
7106      *
7107     */
7108     NODE_IMAGE_ANIMATOR_EVENT_ON_FINISH = 19004,
7109 
7110     /**
7111      * @brief Defines the callback triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX_GROOUP</b>
7112      * or checkbox changes.
7113      *
7114      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7115      * {@link ArkUI_StringAsyncEvent}. \n
7116      * <b>ArkUI_StringAsyncEvent.pStr</b>
7117      * Name: The names of the selected checkboxes;
7118      * Status:
7119      * 0: All checkboxes are selected.
7120      * 1: Some checkboxes are selected.
7121      * 2: No checkboxes are selected. \n
7122      *
7123      * @since 15
7124      */
7125     NODE_CHECKBOX_GROUP_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,
7126 
7127     /**
7128      * @brief Defines the event triggered when the index of the currently displayed element of this
7129      * <b>ARKUI_NODE_SWIPER</b> instance changes.
7130      *
7131      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7132      * {@link ArkUI_NodeComponentEvent}. \n
7133      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7134      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7135      */
7136     NODE_SWIPER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
7137 
7138     /**
7139      * @brief Defines the event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance starts.
7140      *
7141      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7142      * {@link ArkUI_NodeComponentEvent}. \n
7143      * {@link ArkUI_NodeComponentEvent} contains five parameters: \n
7144      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7145      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the target element to switch to. \n
7146      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: offset of the currently displayed element relative to the
7147      * start position of the swiper along the main axis. \n
7148      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: offset of the target element relative to the start position
7149      * of the swiper along the main axis. \n
7150      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: hands-off velocity. \n
7151      */
7152     NODE_SWIPER_EVENT_ON_ANIMATION_START,
7153 
7154     /**
7155      * @brief Defines the event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance ends.
7156      *
7157      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7158      * {@link ArkUI_NodeComponentEvent}. \n
7159      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7160      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7161      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
7162      * start position of the swiper along the main axis. \n
7163      */
7164     NODE_SWIPER_EVENT_ON_ANIMATION_END,
7165 
7166     /**
7167      * @brief Defines the event triggered on a frame-by-frame basis when the page is turned by a swipe in this
7168      * <b>ARKUI_NODE_SWIPER</b> instance.
7169      *
7170      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7171      * {@link ArkUI_NodeComponentEvent}. \n
7172      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7173      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7174      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
7175      * start position of the swiper along the main axis. \n
7176      */
7177     NODE_SWIPER_EVENT_ON_GESTURE_SWIPE,
7178 
7179     /**
7180      * @brief Define the <b>ARKUI_NODE_SWIPER</b> to listen for Swiper page slide events.
7181      * Instruction: \n
7182      * 1. If the {@link ArkUI_SwiperDisplayModeType} attribute is set to \n
7183      * ARKUI_SWIPER_DISPLAY_MODE_AUTO_LINEAR, the interface does not take effect. \n
7184      * 2, circular scenario, set prevMargin and nextMargin attributes, \n
7185      * so that Swiper front and back end display the same page, the interface does not take effect. \n
7186      * 3. During page sliding, the ContentDidScrollCallback callback is \n
7187      * triggered frame-by-frame for all pages in the window. \n
7188      * For example, when there are two pages in the window with subscripts 0 and 1, \n
7189      * callbacks with index values 0 and 1 are triggered twice per frame. \n
7190      * 4, set the swipeByGroup parameter of the displayCount property to \n
7191      * true if at least one page in the same group is in the window, \n
7192      * A callback is triggered for all pages in the group. \n
7193      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7194      * {@link ArkUI_NodeComponentEvent}. \n
7195      * {@link ArkUI_NodeComponentEvent} contains four parameters:\n
7196      * <b>ArkUI_NodeComponentEvent.data[0].i32</b> : indicates the index of the Swiper component, \n
7197      * which is consistent with the index change in the onChange event. \n
7198      * <b>ArkUI_NodeComponentEvent.data[1].i32</b> : The index of a page in the window. \n
7199      * <b>ArkUI_NodeComponentEvent.data[2].f32</b> : The proportion of page movement relative to \n
7200      * the start position of the Swiper spindle (selectedIndex corresponds to the start position of the page). \n
7201      * <b>ArkUI_NodeComponentEvent.data[3].f32</b> : The length of the page in the axis direction. \n
7202      */
7203     NODE_SWIPER_EVENT_ON_CONTENT_DID_SCROLL,
7204 
7205     /**
7206      * @brief Defines the event triggered when content in the swiper component will scroll.
7207      * Instructions: Before page scrolling, the </b>ContentWillScrollCallback</b> callback is invoked. \n \n
7208      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7209      * {@link ArkUI_NodeComponentEvent}. \n
7210      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
7211      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index value of the current child page. \n
7212      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: the index value of the child page that will display. \n
7213      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the sliding offset of each frame.
7214      * Positive numbers indicating slide backward(e.g. from index=1 to index=0), negative numbers indicating
7215      * slide forward(e.g. from index=0 to index=1). \n
7216      *
7217      * @since 15
7218      */
7219     NODE_SWIPER_EVENT_ON_CONTENT_WILL_SCROLL = 1001007,
7220 
7221     /**
7222      * @brief Defines the event triggered when the selected index of the <b>ARKUI_NODE_SWIPER</b> changed.
7223      *
7224      * This event is triggered under the following scenarios: \n
7225      * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
7226      * the threshold for page turning. \n
7227      * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
7228      * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
7229      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7230      * {@link ArkUI_NodeComponentEvent}. \n
7231      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7232      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently selected element. \n
7233      *
7234      * @since 18
7235      */
7236     NODE_SWIPER_EVENT_ON_SELECTED = 1001005,
7237 
7238     /**
7239      * @brief Defines the event triggered when the selected index of the <b>ARKUI_NODE_SWIPER</b> changed.
7240      *
7241      * This event is triggered under the following scenarios: \n
7242      * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
7243      * the threshold for page turning. \n
7244      * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
7245      * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
7246      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7247      * {@link ArkUI_NodeComponentEvent}. \n
7248      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7249      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index of the element becomes unselected. \n
7250      *
7251      * @since 18
7252      */
7253     NODE_SWIPER_EVENT_ON_UNSELECTED = 1001006,
7254 
7255     /**
7256      * @brief Defines the event triggered when the <b>ARKUI_NODE_SCROLL</b> component scrolls.
7257      *
7258      * Notes for triggering the event:\n
7259      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7260      * settings, such as keyboard and mouse operations. \n
7261      * 2. Scrolling can be initiated by calling the controller API. \n
7262      * 3. The out-of-bounds bounce effect is supported. \n
7263      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7264      * {@link ArkUI_NodeComponentEvent}. \n
7265      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7266      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: horizontal scrolling offset. \n
7267      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: vertical scrolling offset. \n
7268      */
7269     NODE_SCROLL_EVENT_ON_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
7270     /**
7271      * @brief Defines the event triggered when each frame scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
7272      *
7273      * Notes for triggering the event:\n
7274      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7275      * settings, such as keyboard and mouse operations. \n
7276      * 2. This event is not triggered when the controller API is called. \n
7277      * 3. This event does not support the out-of-bounds bounce effect. \n
7278      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7279      * {@link ArkUI_NodeComponentEvent}. \n
7280      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7281      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: amount to scroll by. \n
7282      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scrolling state. \n
7283      * <b>::ArkUI_NodeComponentEvent</b> contains one return value:\n
7284      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The event handler can work out the amount by which the component
7285      * needs to scroll based on the real-world situation and return the result in this parameter. \n
7286      */
7287     NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN,
7288 
7289     /**
7290      * @brief Define the enumeration value of the pre sliding trigger event for the scrolling container component.
7291      *
7292      * The conditions that trigger this event: \n
7293      * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
7294      * operations that trigger scrolling.\n
7295      * 2. Called through the rolling controller API interface.\n
7296      * 3. Cross boundary rebound.\n
7297      * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
7298      * {@link ArkUI_NodeComponentEvent}. \n
7299      * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
7300      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
7301      * the left and negative when scrolling to the right, measured in vp. \n
7302      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
7303      * scrolling up and a negative offset when scrolling down, measured in vp. \n
7304      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
7305      * parameter type is {@link ArkUI_ScrollState}. \n
7306      * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: Current scroll source, \n
7307      * parameter type is {@link ArkUI_ScrollSource}. \n
7308      * @return Does not return or returns a number that sets the actual scroll distance of the scroll component.
7309      */
7310     NODE_SCROLL_EVENT_ON_WILL_SCROLL,
7311     /**
7312      * @brief Define the event enumeration value triggered when sliding a scrolling container component.
7313      *
7314      * The conditions that trigger this event: \n
7315      * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
7316      * operations that trigger scrolling.\n
7317      * 2. Called through the rolling controller API interface.\n
7318      * 3. Cross boundary rebound.\n
7319      * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
7320      * {@link ArkUI_NodeComponentEvent}. \n
7321      * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
7322      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
7323      * the left and negative when scrolling to the right, measured in vp. \n
7324      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
7325      * scrolling up and a negative offset when scrolling down, measured in vp. \n
7326      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
7327      parameter type is {@link ArkUI_ScrollState}. \n
7328      */
7329     NODE_SCROLL_EVENT_ON_DID_SCROLL,
7330 
7331     /**
7332      * @brief Defines the event triggered when scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
7333      *
7334      * Notes for triggering the event:\n
7335      * 1. This event is triggered when scrolling is started, with support for other input settings, such as keyboard
7336      * and mouse operations. \n
7337      * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
7338      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7339      * {@link ArkUI_NodeComponentEvent}. \n
7340      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
7341      */
7342     NODE_SCROLL_EVENT_ON_SCROLL_START,
7343     /**
7344      * @brief Defines the event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component stops.
7345      *
7346      * Notes for triggering the event:\n
7347      * 1. This event is triggered when scrolling is stopped by the <b>ARKUI_NODE_SCROLL</b> component or other input
7348      * settings, such as keyboard and mouse operations. \n
7349      * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
7350      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7351      * {@link ArkUI_NodeComponentEvent}. \n
7352      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
7353      */
7354     NODE_SCROLL_EVENT_ON_SCROLL_STOP,
7355     /**
7356      * @brief Defines the event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component reaches
7357      * one of the edges.
7358      *
7359      * Notes for triggering the event:\n
7360      * 1. This event is triggered when scrolling reaches the edge after being started by the <b>ARKUI_NODE_SCROLL</b>
7361      * component or other input settings, such as keyboard and mouse operations. \n
7362      * 2. Scrolling can be initiated by calling the controller API. \n
7363      * 3. The out-of-bounds bounce effect is supported. \n
7364      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7365      * {@link ArkUI_NodeComponentEvent}. \n
7366      * {@link ArkUI_NodeComponentEvent} contains one parameter. \n
7367      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edge (top, bottom, left, or right) that the scrolling reaches. \n
7368      */
7369     NODE_SCROLL_EVENT_ON_SCROLL_EDGE,
7370     /**
7371      * @brief Define that a callback is triggered when the scrolling container component reaches the start position.
7372      * Condition for triggering the event: \n
7373      * Triggered when the component reaches the start position. \n
7374      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
7375      * {@Link ArkUI_NodeComponentEvent}. \n
7376      * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
7377      */
7378     NODE_SCROLL_EVENT_ON_REACH_START,
7379     /**
7380      * @brief Define that a callback is triggered when the scrolling container component ends. \n
7381      * Condition for triggering the event: \n
7382      * Triggered when the component reaches the end. \n
7383      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
7384      * {@Link ArkUI_NodeComponentEvent}. \n
7385      * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
7386      */
7387     NODE_SCROLL_EVENT_ON_REACH_END,
7388     /**
7389      * @brief Defines the enumerated values of the event triggered, \n
7390      * when a subcomponent of ARKUI_NODE_LIST is moved into or out of the list display area. \n
7391      * Condition for triggering the event: \n
7392      * This method is triggered once during list initialization. \n
7393      * It is triggered when the index value of the first or last subcomponent in the list display area changes. \n
7394      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
7395      * {@Link ArkUI_NodeComponentEvent}. \n
7396      * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
7397      * ArkUI_NodeComponentEvent.data[0].i32: List Displays the index value of \n
7398      * the first child component in the region. \n
7399      * ArkUI_NodeComponentEvent.data[1].i32: List Displays the index value of \n
7400      * the last child component in the region. \n
7401      * ArkUI_NodeComponentEvent.data[2].i32: List Displays the index value of \n
7402      * the subcomponent in the middle of the area. \n
7403      */
7404     NODE_LIST_ON_SCROLL_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
7405     /**
7406      * @brief Defines the enumerated values of the event triggered
7407      * before the sliding of the ARKUI_NODE_LIST component. \n
7408      * Condition for triggering the event: \n
7409      * This event is triggered when the scrolling component triggers scrolling. \n
7410      * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
7411      * Called through the scroll controller API. \n
7412      * Out-of-bounds rebound. \n
7413      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7414      * {@Link ArkUI_NodeComponentEvent}. \n
7415      * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
7416      * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
7417      * The offset is positive when the list content is scrolled up and \n
7418      * is negative when the list content is scrolled down. \n
7419      * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
7420      * parameter type is {@link ArkUI_ScrollState}. \n
7421      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
7422      * parameter type is {@link ArkUI_ScrollSource}. \n
7423      * @return Does not return or returns a number that sets the actual scroll distance of the scroll component. \n
7424      */
7425     NODE_LIST_ON_WILL_SCROLL,
7426     /**
7427      * @brief Define the enumerated values of the event triggered when the ARKUI_NODE_LIST component is flicked.
7428      * Condition for triggering the event: \n
7429      * This event is triggered when the scrolling component triggers scrolling. \n
7430      * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
7431      * Called through the scroll controller API. \n
7432      * Out-of-bounds rebound. \n
7433      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7434      * {@Link ArkUI_NodeComponentEvent}. \n
7435      * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
7436      * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
7437      * The offset is positive when the list content is scrolled up and \n
7438      * is negative when the list content is scrolled down. \n
7439      * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
7440      */
7441     NODE_LIST_ON_DID_SCROLL,
7442 
7443     /**
7444      * @brief Defines the event triggered when the currently displayed content of the <b>ARKUI_NODE_LIST</b> changes.
7445      *
7446      * Notes for triggering the event:\n
7447      * This event is triggered once when the list is initialized and when the index of the first child component or the
7448      * next child component in the list display area changes.
7449      * During index calculation, the list item, header of the list item group, and footer of the list item group each
7450      * are counted as a child component. \n
7451      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7452      * {@link ArkUI_NodeComponentEvent}. \n
7453      * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
7454      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the list display area. \n
7455      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: area in the list item group where the list display area starts.
7456      * The type is {@link ArkUI_ListItemGroupArea}. \n
7457      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the list item at the start of the list display area
7458      * in the list item group.
7459      * If the start of the list display area is not on a list item, the value is <b>-1</b>. \n
7460      * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the last child component in the list display area. \n
7461      * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: area in the list item group where the list display area ends.
7462      * The type is {@link ArkUI_ListItemGroupArea}. \n
7463      * <b>ArkUI_NodeComponentEvent.data[5].i32</b>: index of the list item at the end of the list display area in the
7464      * list item group.
7465      * If the end of the list display area is not on a list item, the value is <b>-1</b>. \n
7466      *
7467      * @since 15
7468      */
7469     NODE_LIST_ON_SCROLL_VISIBLE_CONTENT_CHANGE,
7470 
7471     /**
7472      * @brief Defines the event triggered when the refresh state of the <b>ARKUI_NODE_REFRESH</b> object changes.
7473      *
7474      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7475      * {@link ArkUI_NodeComponentEvent}. \n
7476      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7477      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: refresh state. \n
7478      */
7479     NODE_REFRESH_STATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
7480     /**
7481      * @brief Defines the event triggered when the <b>ARKUI_NODE_REFRESH</b> object enters the refresh state.
7482      *
7483      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7484      * {@link ArkUI_NodeComponentEvent}. \n
7485      * {@link ArkUI_NodeComponentEvent} does not contain parameters:\n
7486      */
7487     NODE_REFRESH_ON_REFRESH,
7488 
7489     /**
7490      * @brief Defines the event that is triggered when the <b>ARKUI_NODE_REFRESH</b> drop-down distance changes.
7491      *
7492      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7493      * {@link ArkUI_NodeComponentEvent}. \n
7494      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7495      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Pull-down distance. \n
7496      */
7497     NODE_REFRESH_ON_OFFSET_CHANGE,
7498 
7499     /**
7500      * @brief Defines the event triggered when the <b>ARKUI_NODE_SCROLL</b> component is about to scroll.
7501      *
7502      * Notes for triggering the event:\n
7503      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other
7504      * input settings, such as keyboard and mouse operations. \n
7505      * 2. Scrolling can be initiated by calling the controller API. \n
7506      * 3. The out-of-bounds bounce effect is supported. \n
7507      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7508      * {@link ArkUI_NodeComponentEvent}. \n
7509      * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
7510      * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
7511      * The offset is positive when the list content is scrolled up and \n
7512      * is negative when the list content is scrolled down. \n
7513      * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
7514      * parameter type is {@link ArkUI_ScrollState}. \n
7515      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
7516      * parameter type is {@link ArkUI_ScrollSource}. \n
7517      * @return Does not return or returns a number that sets the actual scroll distance of the scroll component. \n
7518      */
7519     NODE_ON_WILL_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
7520     /**
7521      * @brief Define the enumerated values of the event triggered when the ARKUI_NODE_WATER_FLOW component slides.
7522      * Condition for triggering the event: \n
7523      * This event is triggered when the scrolling component triggers scrolling.
7524      * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
7525      * Called through the scroll controller API. \n
7526      * Out-of-bounds rebound. \n
7527      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7528      * {@Link ArkUI_NodeComponentEvent}. \n
7529      * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
7530      * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
7531      * The offset is positive when the content is scrolled up and is negative when the content is scrolled down. \n
7532      * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
7533      */
7534     NODE_WATER_FLOW_ON_DID_SCROLL,
7535     /**
7536      * @brief Defines the enumerated values of the event triggered,
7537      * when the subcomponent of the start position or end position displayed in the current waterfall changes.
7538      * Condition for triggering the event: \n
7539      * This event is triggered when the index value of the \n
7540      * first or last subcomponent in the waterfall display area changes. \n
7541      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7542      * {@Link ArkUI_NodeComponentEvent}. \n
7543      * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
7544      * ArkUI_NodeComponentEvent.data[0].i32: The index value of the \n
7545      * start position of the currently displayed WaterFlow. \n
7546      * ArkUI_NodeComponentEvent.data[1].i32: The index value of \n
7547      * the end position of the currently displayed waterfall. \n
7548      */
7549     NODE_WATER_FLOW_ON_SCROLL_INDEX,
7550 } ArkUI_NodeEventType;
7551 
7552 /**
7553  * @brief Defines the common structure type of a component event.
7554  *
7555  * @since 12
7556  */
7557 typedef struct ArkUI_NodeEvent ArkUI_NodeEvent;
7558 
7559 /**
7560  * @brief Obtains the type of a component event.
7561  *
7562  * @param event Indicates the pointer to the component event.
7563  * @return Returns the type of the component event.
7564  * @since 12
7565  */
7566 ArkUI_NodeEventType OH_ArkUI_NodeEvent_GetEventType(ArkUI_NodeEvent* event);
7567 
7568 /**
7569  * @brief Obtains the custom ID of a component event.
7570  *
7571  * The event ID is passed in as a parameter when the {@link registerNodeEvent} function is called and can be applied
7572  * to the dispatch logic of the same event entry function {@link registerNodeEventReceiver}.
7573  *
7574  * @param event Indicates the pointer to the component event.
7575  * @return Returns the custom ID of the component event.
7576  * @since 12
7577  */
7578 int32_t OH_ArkUI_NodeEvent_GetTargetId(ArkUI_NodeEvent* event);
7579 
7580 /**
7581  * @brief Obtains the component object that triggers a component event.
7582  *
7583  * @param event Indicates the pointer to the component event.
7584  * @return Returns the component object that triggers the component event.
7585  * @since 12
7586  */
7587 ArkUI_NodeHandle OH_ArkUI_NodeEvent_GetNodeHandle(ArkUI_NodeEvent* event);
7588 
7589 /**
7590  * @brief Obtains input event (for example, touch event) data for a component event.
7591  *
7592  * @param event Indicates the pointer to the component event.
7593  * @return Returns the pointer to the input event data.
7594  * @since 12
7595  */
7596 ArkUI_UIInputEvent* OH_ArkUI_NodeEvent_GetInputEvent(ArkUI_NodeEvent* event);
7597 
7598 /**
7599  * @brief Obtains the numerical data in a component event.
7600  *
7601  * @param event Indicates the pointer to the component event.
7602  * @return Returns the pointer to the numerical data.
7603  * @since 12
7604  */
7605 ArkUI_NodeComponentEvent* OH_ArkUI_NodeEvent_GetNodeComponentEvent(ArkUI_NodeEvent* event);
7606 
7607 /**
7608  * @brief Obtains the string data in a component event.
7609  *
7610  * @param event Indicates the pointer to the component event.
7611  * @return Returns the pointer to the string data.
7612  * @since 12
7613  */
7614 ArkUI_StringAsyncEvent* OH_ArkUI_NodeEvent_GetStringAsyncEvent(ArkUI_NodeEvent* event);
7615 
7616 /**
7617  * @brief Obtains the ArkUI_TextChangeEvent data from a component event.
7618  *
7619  * @param event Pointer to a component event. It cannot be null.
7620  * @return Returns the pointer to the <b>ArkUI_TextChangeEvent</b> object.
7621  * @since 15
7622  */
7623 ArkUI_TextChangeEvent* OH_ArkUI_NodeEvent_GetTextChangeEvent(ArkUI_NodeEvent* event);
7624 
7625 /**
7626  * @brief Obtains the custom data in a component event.
7627  *
7628  * This parameter is passed in {@link registerNodeEvent} and can be applied to the service logic when the event
7629  * is triggered.
7630  *
7631  * @param event Indicates the pointer to the component event.
7632  * @return Returns the pointer to the custom data.
7633  * @since 12
7634  */
7635 void* OH_ArkUI_NodeEvent_GetUserData(ArkUI_NodeEvent* event);
7636 
7637 /**
7638  * @brief Obtains the numeric-type parameter of a component event.
7639  *
7640  * @param event Indicates the pointer to the component event.
7641  * @param index Indicates the index of the return value.
7642  * @param value Indicates the return value.
7643  * @return Returns the error code.
7644  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7645  *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} if the parameter length exceeds
7646  *         the limit.
7647  *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} if the data does not exist in the component event.
7648  * @since 12
7649  */
7650 int32_t OH_ArkUI_NodeEvent_GetNumberValue(ArkUI_NodeEvent* event, int32_t index, ArkUI_NumberValue* value);
7651 
7652 /**
7653  * @brief Obtains the string-type parameter of a component event. The string data is valid only during an event
7654  * callback. To use it outside an event callback, you are advised to copy the string data.
7655  *
7656  * @param event Indicates the pointer to the component event.
7657  * @param index Indicates the index of the return value.
7658  * @param string Indicates the pointer to the string array.
7659  * @param stringSize Indicates the length of the string array.
7660  * @return Returns the error code.
7661  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7662  *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} if the parameter length exceeds
7663  *         the limit.
7664  *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} if the data does not exist in the component event.
7665  * @since 12
7666  */
7667 int32_t OH_ArkUI_NodeEvent_GetStringValue(ArkUI_NodeEvent* event, int32_t index, char** string, int32_t* stringSize);
7668 
7669 /**
7670  * @brief Sets the return value for a component event.
7671  *
7672  * @param event Indicates the pointer to the component event.
7673  * @param value Indicates the numeric-type array.
7674  * @param size Indicates the array length.
7675  * @return Returns the error code.
7676  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7677  *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_NO_RETURN} if the component event does not support return values.
7678  *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} if data does not exist in the component event.
7679  * @since 12
7680  */
7681 int32_t OH_ArkUI_NodeEvent_SetReturnNumberValue(ArkUI_NodeEvent* event, ArkUI_NumberValue* value, int32_t size);
7682 
7683 /**
7684  * @brief Defines the dirty area flag passed in the <b>::markDirty</b> API.
7685  *
7686  * @since 12
7687  */
7688 typedef enum {
7689     /**
7690      * @brief Remeasure.
7691      *
7692      * When this type of flag is specified, re-layout is triggered by default.
7693      */
7694     NODE_NEED_MEASURE = 1,
7695 
7696     /** Re-layout. */
7697     NODE_NEED_LAYOUT,
7698     /** Re-rendering. */
7699     NODE_NEED_RENDER,
7700 } ArkUI_NodeDirtyFlag;
7701 
7702 /**
7703  * @brief Defines the custom component event type.
7704  *
7705  * @since 12
7706  */
7707 typedef enum {
7708     /** Measure type. */
7709     ARKUI_NODE_CUSTOM_EVENT_ON_MEASURE = 1 << 0,
7710     /** Layout type. */
7711     ARKUI_NODE_CUSTOM_EVENT_ON_LAYOUT = 1 << 1,
7712     /** Draw type. */
7713     ARKUI_NODE_CUSTOM_EVENT_ON_DRAW = 1 << 2,
7714     /** Foreground type. */
7715     ARKUI_NODE_CUSTOM_EVENT_ON_FOREGROUND_DRAW = 1 << 3,
7716     /** Overlay type. */
7717     ARKUI_NODE_CUSTOM_EVENT_ON_OVERLAY_DRAW = 1 << 4,
7718 } ArkUI_NodeCustomEventType;
7719 
7720 /**
7721  * @brief Defines the general structure of a custom component event.
7722  *
7723  * @since 12
7724  */
7725 typedef struct ArkUI_NodeCustomEvent ArkUI_NodeCustomEvent;
7726 
7727 /**
7728  * @brief Defines the component adapter, which is used for lazy loading of elements of scrollable components.
7729  *
7730  * @since 12
7731  */
7732 typedef struct ArkUI_NodeAdapter* ArkUI_NodeAdapterHandle;
7733 
7734 /**
7735  * @brief Defines the component adapter event.
7736  *
7737  * @since 12
7738  */
7739 typedef struct ArkUI_NodeAdapterEvent ArkUI_NodeAdapterEvent;
7740 
7741 /**
7742  * @brief Enumerates component adapter events.
7743  *
7744  * @since 12
7745  */
7746 typedef enum {
7747     /** This event occurs when the component is attached to the adapter. */
7748     NODE_ADAPTER_EVENT_WILL_ATTACH_TO_NODE = 1,
7749     /** This event occurs when the component is detached from the adapter. */
7750     NODE_ADAPTER_EVENT_WILL_DETACH_FROM_NODE = 2,
7751     /** This event occurs when the adapter obtains the unique ID of the new element to add. */
7752     NODE_ADAPTER_EVENT_ON_GET_NODE_ID = 3,
7753     /** This event occurs when the adapter obtains the content of the new element to add. */
7754     NODE_ADAPTER_EVENT_ON_ADD_NODE_TO_ADAPTER = 4,
7755     /** This event occurs when the adapter removes an element. */
7756     NODE_ADAPTER_EVENT_ON_REMOVE_NODE_FROM_ADAPTER = 5,
7757 } ArkUI_NodeAdapterEventType;
7758 
7759 /**
7760 * @brief Creates a component adapter.
7761 *
7762 * @since 12
7763 */
7764 ArkUI_NodeAdapterHandle OH_ArkUI_NodeAdapter_Create();
7765 
7766 /**
7767 * @brief Destroys a component adapter.
7768 *
7769 * @param handle Indicates the target component adapter.
7770 * @since 12
7771 */
7772 void OH_ArkUI_NodeAdapter_Dispose(ArkUI_NodeAdapterHandle handle);
7773 
7774 /**
7775 * @brief Sets the total number of elements in the specified adapter.
7776 *
7777 * @param handle Indicates the target component adapter.
7778 * @param size Indicates the number of elements.
7779 * @return Returns the error code.
7780 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7781 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7782 * @since 12
7783 */
7784 int32_t OH_ArkUI_NodeAdapter_SetTotalNodeCount(ArkUI_NodeAdapterHandle handle, uint32_t size);
7785 
7786 /**
7787 * @brief Obtains the total number of elements in the specified adapter.
7788 *
7789 * @param handle Indicates the target component adapter.
7790 * @return Returns the total number of elements in the adapter.
7791 * @since 12
7792 */
7793 uint32_t OH_ArkUI_NodeAdapter_GetTotalNodeCount(ArkUI_NodeAdapterHandle handle);
7794 
7795 /**
7796 * @brief Registers an event callback for the adapter.
7797 *
7798 * @param handle Indicates the target component adapter.
7799 * @param userData Indicates custom data.
7800 * @param receiver Indicates the event receiver callback.
7801 * @return Returns the error code.
7802 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7803 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7804 * @since 12
7805 */
7806 int32_t OH_ArkUI_NodeAdapter_RegisterEventReceiver(
7807 ArkUI_NodeAdapterHandle handle, void* userData, void (*receiver)(ArkUI_NodeAdapterEvent* event));
7808 
7809 /**
7810 * @brief Deregisters an event callback for the adapter.
7811 *
7812 * @param handle Indicates the target component adapter.
7813 * @since 12
7814 */
7815 void OH_ArkUI_NodeAdapter_UnregisterEventReceiver(ArkUI_NodeAdapterHandle handle);
7816 
7817 /**
7818 * @brief Instructs the specified adapter to reload all elements.
7819 *
7820 * @param handle Indicates the target component adapter.
7821 * @return Returns the error code.
7822 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7823 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7824 * @since 12
7825 */
7826 int32_t OH_ArkUI_NodeAdapter_ReloadAllItems(ArkUI_NodeAdapterHandle handle);
7827 
7828 /**
7829 * @brief Instructs the specified adapter to reload certain elements.
7830 *
7831 * @param handle Indicates the target component adapter.
7832 * @param startPosition Indicates the start position of the elements to reload.
7833 * @param itemCount Indicates the number of the elements to reload.
7834 *  @return Returns the error code.
7835 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7836 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7837 * @since 12
7838 */
7839 int32_t OH_ArkUI_NodeAdapter_ReloadItem(
7840 ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
7841 
7842 /**
7843 * @brief Instructs the specified adapter to remove certain elements.
7844 *
7845 * @param handle Indicates the target component adapter.
7846 * @param startPosition Indicates the start position of the elements to remove.
7847 * @param itemCount Indicates the number of the elements to remove.
7848 * @return Returns the error code.
7849 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7850 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7851 * @since 12
7852 */
7853 int32_t OH_ArkUI_NodeAdapter_RemoveItem(
7854 ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
7855 
7856 /**
7857 * @brief Instructs the specified adapter to insert certain elements.
7858 *
7859 * @param handle Indicates the target component adapter.
7860 * @param startPosition Indicates the start position of the elements to insert.
7861 * @param itemCount Indicates the number of the elements to insert.
7862 * @return Returns the error code.
7863 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7864 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7865 * @since 12
7866 */
7867 int32_t OH_ArkUI_NodeAdapter_InsertItem(
7868 ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
7869 
7870 /**
7871 * @brief Instructs the specified adapter to move certain elements.
7872 *
7873 * @param handle Indicates the target component adapter.
7874 * @param from Indicates the start position of the elements to move.
7875 * @param to  Indicates the end position of the elements to move.
7876 * @return Returns the error code.
7877 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7878 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7879 * @since 12
7880 */
7881 int32_t OH_ArkUI_NodeAdapter_MoveItem(ArkUI_NodeAdapterHandle handle, uint32_t from, uint32_t to);
7882 
7883 /**
7884 * @brief Obtains all elements stored in the specified adapter.
7885 *
7886 * This API returns the pointer to the array of the elements. You need to manually release the memory data
7887 * to which the pointer points.
7888 *
7889 * @param handle Indicates the target component adapter.
7890 * @param items Indicates the pointer to the array of the elements in the adapter.
7891 * @param size Indicates the number of elements.
7892 * @return Returns the error code.
7893 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7894 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7895 * @since 12
7896 */
7897 int32_t OH_ArkUI_NodeAdapter_GetAllItems(ArkUI_NodeAdapterHandle handle, ArkUI_NodeHandle** items, uint32_t* size);
7898 
7899 /**
7900 * @brief Obtains the custom data passed in during registration of the specified event.
7901 *
7902 * @param event Indicates the target adapter event.
7903 * @since 12
7904 */
7905 void* OH_ArkUI_NodeAdapterEvent_GetUserData(ArkUI_NodeAdapterEvent* event);
7906 
7907 /**
7908 * @brief Obtains the event type.
7909 *
7910 * @param event Indicates the target adapter event.
7911 * @return Returns the event type.
7912 * @since 12
7913 */
7914 ArkUI_NodeAdapterEventType OH_ArkUI_NodeAdapterEvent_GetType(ArkUI_NodeAdapterEvent* event);
7915 
7916 /**
7917 * @brief Obtains the element to be removed for the event to be destroyed.
7918 *
7919 * @param event Indicates the target adapter event.
7920 * @return Returns the element to be removed.
7921 * @since 12
7922 */
7923 ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetRemovedNode(ArkUI_NodeAdapterEvent* event);
7924 
7925 /**
7926 * @brief Obtains the index of the element to be operated for the specified adapter event.
7927 *
7928 * @param event Indicates the target adapter event.
7929 * @return Returns the index of the element.
7930 * @since 12
7931 */
7932 uint32_t OH_ArkUI_NodeAdapterEvent_GetItemIndex(ArkUI_NodeAdapterEvent* event);
7933 
7934 /**
7935 * @brief Obtains the scrollable container node that uses the specified adapter.
7936 *
7937 * @param event Indicates the target adapter event.
7938 * @return Returns the scrollable container node that uses the specified adapter.
7939 * @since 12
7940 */
7941 ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetHostNode(ArkUI_NodeAdapterEvent* event);
7942 
7943 /**
7944 * @brief Sets the component to be added to the specified adapter.
7945 *
7946 * @param event Indicates the target adapter event.
7947 * @param node Indicates the component to be added.
7948 * @return Returns the error code.
7949 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7950 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7951 * @since 12
7952 */
7953 int32_t OH_ArkUI_NodeAdapterEvent_SetItem(ArkUI_NodeAdapterEvent* event, ArkUI_NodeHandle node);
7954 
7955 /**
7956 * @brief Sets the component ID to be generated.
7957 *
7958 * @param event Indicates the target adapter event.
7959 * @param id Indicates the component ID to set.
7960 * @return Returns the error code.
7961 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7962 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7963 * @since 12
7964 */
7965 int32_t OH_ArkUI_NodeAdapterEvent_SetNodeId(ArkUI_NodeAdapterEvent* event, int32_t id);
7966 
7967 /**
7968  * @brief Declares a collection of native node APIs provided by ArkUI.
7969  *
7970  * The APIs related to the native node must be called in the main thread.
7971  *
7972  * @version 1
7973  * @since 12
7974  */
7975 typedef struct {
7976     /** Struct version. */
7977     int32_t version;
7978 
7979     /**
7980      * @brief Creates a component based on {@link ArkUI_NodeType} and returns the pointer to the created component.
7981      *
7982      * @param type Indicates the type of component to create.
7983      * @return Returns the pointer to the created component. If the component fails to be created, NULL is returned.
7984      */
7985     ArkUI_NodeHandle (*createNode)(ArkUI_NodeType type);
7986 
7987     /**
7988      * @brief Destroys the component to which the specified pointer points.
7989      *
7990      * @param node Indicates the pointer.
7991      */
7992     void (*disposeNode)(ArkUI_NodeHandle node);
7993 
7994     /**
7995      * @brief Adds a component to a parent node.
7996      *
7997      * @param parent Indicates the pointer to the parent node.
7998      * @param child Indicates the pointer to the child node.
7999      * @return Returns the error code.
8000      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8001      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8002      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8003      * on BuilderNode generated nodes:
8004      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8005      */
8006     int32_t (*addChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);
8007 
8008     /**
8009      * @brief Removes a component from its parent node.
8010      *
8011      * @param parent Indicates the pointer to the parent node.
8012      * @param child Indicates the pointer to the child node.
8013      * @return Returns the error code.
8014      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8015      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8016      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8017      * on BuilderNode generated nodes:
8018      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8019      */
8020     int32_t (*removeChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);
8021 
8022     /**
8023      * @brief Inserts a component to a parent node after the specified <b>sibling</b> node.
8024      *
8025      * @param parent Indicates the pointer to the parent node.
8026      * @param child Indicates the pointer to the child node.
8027      * @param sibling Indicates the pointer to the sibling node after which the target node is to be inserted.
8028      * If the value is null, the node is inserted at the start of the parent node.
8029      * @return Returns the error code.
8030      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8031      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8032      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8033      * on BuilderNode generated nodes:
8034      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8035      */
8036     int32_t (*insertChildAfter)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);
8037 
8038     /**
8039      * @brief Inserts a component to a parent node before the specified <b>sibling</b> node.
8040      *
8041      * @param parent Indicates the pointer to the parent node.
8042      * @param child Indicates the pointer to the child node.
8043      * @param sibling Indicates the pointer to the sibling node before which the target node is to be inserted.
8044      * If the value is null, the node is inserted at the end of the parent node.
8045      * @return Returns the error code.
8046      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8047      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8048      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8049      * on BuilderNode generated nodes:
8050      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8051      */
8052     int32_t (*insertChildBefore)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);
8053 
8054     /**
8055      * @brief Inserts a component to the specified position in a parent node.
8056      *
8057      * @param parent Indicates the pointer to the parent node.
8058      * @param child Indicates the pointer to the child node.
8059      * @param position Indicates the position to which the target child node is to be inserted. If the value is a
8060      * negative number or invalid, the node is inserted at the end of the parent node.
8061      * @return Returns the error code.
8062      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8063      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8064      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8065      * on BuilderNode generated nodes:
8066      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8067      */
8068     int32_t (*insertChildAt)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, int32_t position);
8069 
8070     /**
8071      * @brief Sets the attribute of a node.
8072      *
8073      * @param node Indicates the node whose attribute needs to be set.
8074      * @param attribute Indicates the type of attribute to set.
8075      * @param value Indicates the attribute value.
8076      * @return Returns the error code.
8077      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8078      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8079      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8080      *         of the native API was not found.
8081      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8082      *         on BuilderNode generated nodes:
8083      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8084      */
8085     int32_t (*setAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute, const ArkUI_AttributeItem* item);
8086 
8087     /**
8088      * @brief Obtains an attribute.
8089      *
8090      * The pointer returned by this API is an internal buffer pointer of the ArkUI framework. As such, you do not need
8091      * to call <b>delete</b> to release the memory. However, the pointer must be used before this API is called next
8092      * time. Otherwise, the pointer may be overwritten by other values.
8093      * @param node Indicates the node whose attribute needs to be obtained.
8094      * @param attribute Indicates the type of attribute to obtain.
8095      * @return Returns the attribute value. If the operation fails, a null pointer is returned.
8096      */
8097     const ArkUI_AttributeItem* (*getAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
8098 
8099     /**
8100      * @brief Resets an attribute.
8101      *
8102      * @param node Indicates the node whose attribute needs to be reset.
8103      * @param attribute Indicates the type of attribute to reset.
8104      * @return Returns the error code.
8105      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8106      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8107      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8108      *         of the native API was not found.
8109      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8110      *         on BuilderNode generated nodes:
8111      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8112      */
8113     int32_t (*resetAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
8114 
8115     /**
8116      * @brief Registers an event for the specified node.
8117      *
8118      * When the component is being displayed, this API must be called in the main thread.
8119      *
8120      * @param node Indicates the target node.
8121      * @param eventType Indicates the type of event to register.
8122      * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeEvent}
8123      * when the event is triggered.
8124      * @param userData Indicates the custom event parameter, which is passed in the callback of {@link ArkUI_NodeEvent}
8125      * @return Returns the error code.
8126      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8127      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8128      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8129      *         of the native API was not found.
8130      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8131      *         on BuilderNode generated nodes:
8132      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8133      */
8134     int32_t (*registerNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType,
8135         int32_t targetId, void* userData);
8136 
8137     /**
8138      * @brief Unregisters an event for the specified node.
8139      *
8140      * When the component is being displayed, this API must be called in the main thread.
8141      *
8142      * @param node Indicates the target node.
8143      * @param eventType Indicates the type of event to unregister.
8144      */
8145     void (*unregisterNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType);
8146 
8147     /**
8148      * @brief Registers an event receiver.
8149      *
8150      * The ArkUI framework collects component events generated during the process and calls back the events through
8151      * the registered event receiver. \n
8152      * A new call to this API will overwrite the previously registered event receiver. \n
8153      * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer. The data will be destroyed after the
8154      * callback is complete. \n
8155      * To bind with a component instance, you can use the <b>addNodeEventReceiver</b> function. \n
8156      *
8157      * @param eventReceiver Indicates the event receiver to register.
8158      */
8159     void (*registerNodeEventReceiver)(void (*eventReceiver)(ArkUI_NodeEvent* event));
8160 
8161     /**
8162      * @brief Unregisters the event receiver.
8163      *
8164      */
8165     void (*unregisterNodeEventReceiver)();
8166 
8167     /**
8168      * @brief Forcibly marks the current node that needs to be measured, laid out, or rendered again.
8169      *
8170      * Regarding updates to system attributes, the ArkUI framework automatically marks the dirty area and performs
8171      * measuring, layout, or rendering again. In this case, you do not need to call this API.
8172      * @param node Indicates the node for which you want to mark as dirty area.
8173      * @param dirtyFlag Indicates type of dirty area.
8174      */
8175     void (*markDirty)(ArkUI_NodeHandle node, ArkUI_NodeDirtyFlag dirtyFlag);
8176 
8177     /**
8178      * @brief Obtains the number of subnodes.
8179      *
8180      * @param node Indicates the target node.
8181      * @return the number of subnodes. If not, returns 0.
8182      */
8183     uint32_t (*getTotalChildCount)(ArkUI_NodeHandle node);
8184 
8185     /**
8186      * @brief Obtains a subnode.
8187      *
8188      * @param node Indicates the target node.
8189      * @param position Indicates the position of the subnode.
8190      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8191      */
8192     ArkUI_NodeHandle (*getChildAt)(ArkUI_NodeHandle node, int32_t position);
8193 
8194     /**
8195      * @brief Obtains the first subnode.
8196      *
8197      * @param node Indicates the target node.
8198      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8199      */
8200     ArkUI_NodeHandle (*getFirstChild)(ArkUI_NodeHandle node);
8201 
8202     /**
8203      * @brief Obtains the last subnode.
8204      *
8205      * @param node Indicates the target node.
8206      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8207      */
8208     ArkUI_NodeHandle (*getLastChild)(ArkUI_NodeHandle node);
8209 
8210     /**
8211      * @brief Obtains the previous sibling node.
8212      *
8213      * @param node Indicates the target node.
8214      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8215      */
8216     ArkUI_NodeHandle (*getPreviousSibling)(ArkUI_NodeHandle node);
8217 
8218     /**
8219      * @brief Obtains the next sibling node.
8220      *
8221      * @param node Indicates the target node.
8222      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8223      */
8224     ArkUI_NodeHandle (*getNextSibling)(ArkUI_NodeHandle node);
8225 
8226     /**
8227      * @brief Registers a custom event for a node. When the event is triggered, the value is returned through the entry
8228      * point function registered by <b>registerNodeCustomEventReceiver</b>.
8229      *
8230      * @param node Indicates the target node.
8231      * @param eventType Indicates the type of event to register.
8232      * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeCustomEvent}
8233      * when the event is triggered.
8234      * @param userData Indicates the custom event parameter, which is passed in the callback of
8235      * {@link ArkUI_NodeCustomEvent} when the event is triggered.
8236      * @return Returns the error code.
8237      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8238      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8239      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8240      *         of the native API was not found.
8241      */
8242     int32_t (*registerNodeCustomEvent)(
8243         ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType, int32_t targetId, void* userData);
8244 
8245     /**
8246      * @brief Unregisters a custom event for a node.
8247      *
8248      * @param node Indicates the target node.
8249      * @param eventType Indicates the type of event to unregister.
8250      */
8251     void (*unregisterNodeCustomEvent)(ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType);
8252 
8253     /**
8254      * @brief Registers a unified entry point function for custom node event callbacks.
8255      *
8256      * The ArkUI framework collects custom component events generated during the process and calls back the events
8257      * through the registered <b>registerNodeCustomEventReceiver</b>. \n
8258      * A new call to this API will overwrite the previously registered event receiver.
8259      * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
8260      * The data will be destroyed after the callback is complete. \n
8261      * To bind with a component instance, you can use the <b>addNodeCustomEventReceiver</b> function. \n
8262      *
8263      * @param eventReceiver Indicates the event receiver to register.
8264      */
8265     void (*registerNodeCustomEventReceiver)(void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
8266 
8267     /**
8268      * @brief Unregisters the unified entry point function for custom node event callbacks.
8269      *
8270      */
8271     void (*unregisterNodeCustomEventReceiver)();
8272 
8273     /**
8274      * @brief Sets the width and height for a component after the measurement.
8275      *
8276      * @param node Indicates the target node.
8277      * @param width Indicates the width.
8278      * @param height Indicates the height.
8279      * @return Returns the error code.
8280      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8281      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
8282      */
8283     int32_t (*setMeasuredSize)(ArkUI_NodeHandle node, int32_t width, int32_t height);
8284 
8285     /**
8286      * @brief Sets the position for a component.
8287      *
8288      * @param node Indicates the target node.
8289      * @param positionX Indicates the X coordinate.
8290      * @param positionY Indicates the Y coordinate.
8291      * @return Returns the error code.
8292      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8293      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
8294      */
8295     int32_t (*setLayoutPosition)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);
8296 
8297     /**
8298      * @brief Obtains the width and height of a component after measurement.
8299      *
8300      * @param node Indicates the target node.
8301      * @return Returns the width and height of the component.
8302      */
8303     ArkUI_IntSize (*getMeasuredSize)(ArkUI_NodeHandle node);
8304 
8305     /**
8306      * @brief Obtains the position of a component after the layout is complete.
8307      *
8308      * @param node Indicates the target node.
8309      * @return Returns the position of the component.
8310      */
8311     ArkUI_IntOffset (*getLayoutPosition)(ArkUI_NodeHandle node);
8312 
8313     /**
8314      * @brief Measures a node. You can use the <b>getMeasuredSize</b> API to obtain the size after the measurement.
8315      *
8316      * @param node Indicates the target node.
8317      * @param Constraint Indicates the size constraint.
8318      * @return Returns the error code.
8319      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8320      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
8321      */
8322     int32_t (*measureNode)(ArkUI_NodeHandle node, ArkUI_LayoutConstraint* Constraint);
8323 
8324     /**
8325      * @brief Lays outs a component and passes the expected position of the component relative to its parent component.
8326      *
8327      * When the component is being displayed, this API must be called in the main thread.
8328      *
8329      * @param node Indicates the target node.
8330      * @param positionX Indicates the X coordinate.
8331      * @param positionY Indicates the Y coordinate.
8332      * @return Returns the error code.
8333      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8334      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
8335      */
8336     int32_t (*layoutNode)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);
8337 
8338     /**
8339      * @brief Adds a component event callback function to a component to receive component events generated
8340      * by the component.
8341      *
8342      * Unlike the global registration function <b>registerNodeEventReceiver</b>, this API allows multiple event
8343      * receivers to be added to the same component. \n
8344      * The callback added by this API is triggered before the global callback registered by
8345      * <b>registerNodeEventReceiver</b>. \n
8346      * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer.
8347      * The data will be destroyed after the callback is complete. \n
8348      *
8349      * @param node Indicates the component for which you want to add the event callback function.
8350      * @param eventReceiver Indicates the component event callback function to add.
8351      * @return Returns the error code.
8352      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8353      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
8354      */
8355     int32_t (*addNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));
8356 
8357     /**
8358      * @brief Removes the registered component event callback function from a component.
8359      *
8360      * @param node Indicates the component from which you want to remove the event callback function.
8361      * @param eventReceiver Indicates the component event callback function to remove.
8362      * @return Returns the error code.
8363      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8364      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
8365      */
8366     int32_t (*removeNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));
8367 
8368     /**
8369      * @brief Adds a custom event callback function to a component to receive custom events
8370      * (such as layout and drawing events) generated by the component.
8371      *
8372      * Unlike the global registration function <b>registerNodeCustomEventReceiver</b>, this API allows
8373      * multiple event receivers to be added to the same component. \n
8374      * The callback added by this API is triggered before the global callback registered by
8375      * <b>registerNodeCustomEventReceiver</b>. \n
8376      * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
8377      * The data will be destroyed after the callback is complete. \n
8378      *
8379      * @param node Indicates the component for which you want to add the custom event callback function.
8380      * @param eventReceiver Indicates the custom event callback function to add.
8381      * @return Returns the error code.
8382      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8383      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8384      */
8385     int32_t (*addNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
8386 
8387     /**
8388      * @brief Removes a registered custom event callback function from a component.
8389      *
8390      * @param node Indicates the component from which you want to remove the custom event callback function.
8391      * @param eventReceiver Indicates the custom event callback function to remove.
8392      * @return Returns the error code.
8393      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8394      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8395      */
8396     int32_t (*removeNodeCustomEventReceiver)(ArkUI_NodeHandle node,
8397         void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
8398 
8399     /**
8400      * @brief Saves custom data on the specified component.
8401      *
8402      * @param node Indicates the component on which the custom data will be saved.
8403      * @param userData Indicates the custom data to be saved.
8404      * @return Returns the error code.
8405      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8406      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
8407      */
8408     int32_t (*setUserData)(ArkUI_NodeHandle node, void* userData);
8409 
8410     /**
8411      * @brief Obtains the custom data saved on the specified component.
8412      *
8413      * @param node Indicates the target component.
8414      * @return Returns the custom data.
8415      */
8416     void* (*getUserData)(ArkUI_NodeHandle node);
8417 
8418     /**
8419      * @brief Sets the unit for a component.
8420      *
8421      * @param node Indicates the component for which you want to set the unit.
8422      * @param unit Indicates the unit, which is an enumerated value of {@link ArkUI_LengthMetricUnit}.
8423      * The default value is <b>ARKUI_LENGTH_METRIC_UNIT_DEFAULT</b>.
8424      * @return Returns the error code.
8425     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8426     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8427      */
8428     int32_t (*setLengthMetricUnit)(ArkUI_NodeHandle node, ArkUI_LengthMetricUnit unit);
8429 
8430     /**
8431       * @brief Get the parent node.
8432       *
8433       * @param node target node object.
8434       * @return Returns the pointer of the component, if not return NULL
8435       */
8436     ArkUI_NodeHandle (*getParent)(ArkUI_NodeHandle node);
8437 
8438     /**
8439     * @brief Uninstall all child nodes from the parent component.
8440     *
8441     * @param parent target node object.
8442     * @return Returns the error code.
8443     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8444     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8445     * @since 12
8446     */
8447     int32_t (*removeAllChildren)(ArkUI_NodeHandle parent);
8448 } ArkUI_NativeNodeAPI_1;
8449 
8450 /**
8451 * @brief Obtains the size constraint for measurement through a custom component event.
8452 *
8453 * @param event Indicates the pointer to the custom component event.
8454 * @return Returns the pointer to the size constraint.
8455 * @since 12
8456 */
8457 ArkUI_LayoutConstraint* OH_ArkUI_NodeCustomEvent_GetLayoutConstraintInMeasure(ArkUI_NodeCustomEvent* event);
8458 
8459 /**
8460 * @brief Obtains the expected position of a component relative to its parent component in the layout phase through a
8461 * custom component event.
8462 *
8463 * @param event Indicates the pointer to the custom component event.
8464 * @return Returns the expected position relative to the parent component.
8465 * @since 12
8466 */
8467 ArkUI_IntOffset OH_ArkUI_NodeCustomEvent_GetPositionInLayout(ArkUI_NodeCustomEvent* event);
8468 
8469 /**
8470 * @brief Obtains the drawing context through a custom component event.
8471 *
8472 * @param event Indicates the pointer to the custom component event.
8473 * @return Returns the drawing context.
8474 * @since 12
8475 */
8476 ArkUI_DrawContext* OH_ArkUI_NodeCustomEvent_GetDrawContextInDraw(ArkUI_NodeCustomEvent* event);
8477 
8478 /**
8479 * @brief Obtains the ID of a custom component event.
8480 *
8481 * @param event Indicates the pointer to the custom component event.
8482 * @return Returns the ID of the custom component event.
8483 * @since 12
8484 */
8485 int32_t OH_ArkUI_NodeCustomEvent_GetEventTargetId(ArkUI_NodeCustomEvent* event);
8486 
8487 /**
8488 * @brief Obtains custom event parameters through a custom component event.
8489 *
8490 * @param event Indicates the pointer to the custom component event.
8491 * @return Returns the custom event parameters.
8492 * @since 12
8493 */
8494 void* OH_ArkUI_NodeCustomEvent_GetUserData(ArkUI_NodeCustomEvent* event);
8495 
8496 /**
8497 * @brief Obtains a component object through a custom component event.
8498 *
8499 * @param event Indicates the pointer to the custom component event.
8500 * @return Returns the component object.
8501 * @since 12
8502 */
8503 ArkUI_NodeHandle OH_ArkUI_NodeCustomEvent_GetNodeHandle(ArkUI_NodeCustomEvent* event);
8504 
8505 /**
8506 * @brief Obtains the event type through a custom component event.
8507 *
8508 * @param event Indicates the pointer to the custom component event.
8509 * @return Returns the type of the custom component event.
8510 * @since 12
8511 */
8512 ArkUI_NodeCustomEventType OH_ArkUI_NodeCustomEvent_GetEventType(ArkUI_NodeCustomEvent* event);
8513 
8514 /**
8515 * @brief Obtains the measurement information of a custom span through a custom component event.
8516 *
8517 * @param event Indicates the pointer to the custom component event.
8518 * @param info Indicates the measurement information to be obtained.
8519 * @return Returns the result code.
8520 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8521 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8522 *         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
8523 * @since 12
8524 */
8525 int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo(
8526     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMeasureInfo* info);
8527 
8528 /**
8529 * @brief Sets the measurement metrics of a custom span through a custom component event.
8530 *
8531 * @param event Indicates the pointer to the custom component event.
8532 * @param metrics Indicates the measurement metrics to set.
8533 * @return Returns the result code.
8534 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8535 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8536 *         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
8537 * @since 12
8538 */
8539 int32_t OH_ArkUI_NodeCustomEvent_SetCustomSpanMetrics(
8540     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMetrics* metrics);
8541 
8542 /**
8543 * @brief Obtains the drawing information of a custom span through a custom component event.
8544 *
8545 * @param event Indicates the pointer to the custom component event.
8546 * @param info Indicates the drawing information to obtain.
8547 * @return Returns the result code.
8548 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8549 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8550 *         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
8551 * @since 12
8552 */
8553 int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanDrawInfo(
8554     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanDrawInfo* info);
8555 
8556 /**
8557  * @brief Defines the node content event type.
8558  *
8559  * @since 12
8560  */
8561 typedef enum {
8562     /** Defines the attach event. */
8563     NODE_CONTENT_EVENT_ON_ATTACH_TO_WINDOW = 0,
8564     /** Defines the detach event. */
8565     NODE_CONTENT_EVENT_ON_DETACH_FROM_WINDOW = 1,
8566 } ArkUI_NodeContentEventType;
8567 
8568 /**
8569  * @brief Enumerates the inspector error codes.
8570  * @since 15
8571  */
8572 typedef enum {
8573     /**
8574      * @error Success.
8575      */
8576     ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL = 0,
8577     /**
8578      * @error Invalid parameter.
8579      */
8580     ARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER = -1,
8581 } ArkUI_InspectorErrorCode;
8582 
8583 /**
8584  * @brief Defines the general structure of a node content event.
8585  * @since 12
8586  */
8587 typedef struct ArkUI_NodeContentEvent ArkUI_NodeContentEvent;
8588 
8589 /**
8590  * @brief Defines the callback function of a node content event.
8591  * @since 12
8592  */
8593 typedef void (*ArkUI_NodeContentCallback)(ArkUI_NodeContentEvent* event);
8594 
8595 /**
8596  * @brief register a callback function to a node content.
8597  *
8598  * @param content Indicates the pointer to the node content instance.
8599  * @param callback Indicates the callback function.
8600  * @return Returns the error code.
8601  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8602  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8603  * @since 12
8604  */
8605 int32_t OH_ArkUI_NodeContent_RegisterCallback(ArkUI_NodeContentHandle content, ArkUI_NodeContentCallback callback);
8606 
8607 /**
8608  * @brief Obtains the type of a node content event.
8609  *
8610  * @param event Indicates the pointer to the node content event.
8611  * @return Returns the type of the node content event.
8612  * @since 12
8613  */
8614 ArkUI_NodeContentEventType OH_ArkUI_NodeContentEvent_GetEventType(ArkUI_NodeContentEvent* event);
8615 
8616 /**
8617  * @brief Obtains the node content object that triggers a node content event.
8618  *
8619  * @param event Indicates the pointer to the node content event.
8620  * @return Returns the node content object that triggers the node content event.
8621  * @since 12
8622  */
8623 ArkUI_NodeContentHandle OH_ArkUI_NodeContentEvent_GetNodeContentHandle(ArkUI_NodeContentEvent* event);
8624 
8625 /**
8626  * @brief Saves custom data on the specified node content.
8627  *
8628  * @param content Indicates the node content on which the custom data will be saved.
8629  * @param userData Indicates the custom data to be saved.
8630  * @return Returns the error code.
8631  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8632  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8633  * @since 12
8634  */
8635 int32_t OH_ArkUI_NodeContent_SetUserData(ArkUI_NodeContentHandle content, void* userData);
8636 
8637 /**
8638  * @brief Obtains the custom data saved on the specified node content.
8639  *
8640  * @param content Indicates the target node content.
8641  * @return Returns the custom data.
8642  * @since 12
8643  */
8644 void* OH_ArkUI_NodeContent_GetUserData(ArkUI_NodeContentHandle content);
8645 
8646 /**
8647  * @brief Add a node to a node content.
8648  *
8649  * @param content Indicates the pointer to the node content instance.
8650  * @param node Indicates the pointer to the node
8651  * @return Returns the error code.
8652  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8653  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8654  * @since 12
8655  */
8656 int32_t OH_ArkUI_NodeContent_AddNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);
8657 
8658 /**
8659  * @brief remove a node from a node content.
8660  *
8661  * @param content Indicates the pointer to the node content instance.
8662  * @param node Indicates the pointer to the node
8663  * @return Returns the error code.
8664  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8665  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8666  * @since 12
8667  */
8668 int32_t OH_ArkUI_NodeContent_RemoveNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);
8669 
8670 /**
8671  * @brief insert a node into a node content at a given position.
8672  *
8673  * @param content Indicates the pointer to the node content instance.
8674  * @param node Indicates the pointer to the node
8675  * @param position Indicates the position for inserting the node
8676  * @return Returns the error code.
8677  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8678  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8679  * @since 12
8680  */
8681 int32_t OH_ArkUI_NodeContent_InsertNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node, int32_t position);
8682 
8683 /**
8684  * @brief Get the size of the component layout area.
8685  * The layout area size does not include graphic variation attributes such as scaling.
8686  *
8687  * @param node ArkUI_NodeHandle pointer.
8688  * @param size The drawing area size of the component handle, in px.
8689  * @return Returns the error code.
8690  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8691  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8692  * @since 12
8693  */
8694 int32_t OH_ArkUI_NodeUtils_GetLayoutSize(ArkUI_NodeHandle node, ArkUI_IntSize* size);
8695 
8696 /**
8697  * @brief Obtain the position of the component layout area relative to the parent component.
8698  * The relative position of the layout area does not include graphic variation attributes, such as translation.
8699  *
8700  * @param node ArkUI_NodeHandle pointer.
8701  * @param localOffset The offset value of the component handle relative to the parent component, in px.
8702  * @return Returns the error code.
8703  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8704  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8705  * @since 12
8706  */
8707 int32_t OH_ArkUI_NodeUtils_GetLayoutPosition(ArkUI_NodeHandle node, ArkUI_IntOffset* localOffset);
8708 
8709 /**
8710  * @brief Obtain the position of the component layout area relative to the window.
8711  * The relative position of the layout area does not include graphic variation attributes, such as translation.
8712  *
8713  * @param node ArkUI_NodeHandle pointer.
8714  * @param globalOffset The offset value of the component handle relative to the window, in px.
8715  * @return Returns the error code.
8716  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8717  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8718  * @since 12
8719  */
8720 int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffset);
8721 
8722 /**
8723  * @brief Obtain the position of the component layout area relative to the screen.
8724  * The relative position of the layout area does not include graphic variation attributes, such as translation.
8725  *
8726  * @param node ArkUI_NodeHandle pointer.
8727  * @param screenOffset The offset value of the component handle relative to the screen, in px.
8728  * @return Returns the error code.
8729  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8730  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8731  * @since 12
8732  */
8733 int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* screenOffset);
8734 
8735 /**
8736  * @brief Obtain the position of the component in the window, including the properties of graphic translation changes.
8737  *
8738  * @param node ArkUI_NodeHandle pointer.
8739  * @param translateOffset The cumulative offset value of the component handle itself,
8740  * parent components, and ancestor nodes, in px.
8741  * @return Returns the error code.
8742  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8743  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8744  * @since 12
8745  */
8746 int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);
8747 
8748 /**
8749  * @brief Obtain the position of the component on the screen, including the attributes of graphic translation changes.
8750  *
8751  * @param node ArkUI_NodeHandle pointer.
8752  * @param translateOffset The cumulative offset value of the component handle itself,
8753  * parent components, and ancestor nodes, in px.
8754  * @return Returns the error code.
8755  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8756  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8757  * @since 12
8758  */
8759 int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);
8760 
8761 /**
8762  * @brief Add the custom property of the component. This interface only works on the main thread.
8763  *
8764  * @param node ArkUI_NodeHandle pointer.
8765  * @param name The name of the custom property. Passing null pointers is not allowed.
8766  * @param value The value of the custom property. Passing null pointers is not allowed.
8767  * @since 13
8768  */
8769 void OH_ArkUI_NodeUtils_AddCustomProperty(ArkUI_NodeHandle node, const char* name, const char* value);
8770 
8771 /**
8772  * @brief Remove the custom property of the component.
8773  *
8774  * @param node ArkUI_NodeHandle pointer.
8775  * @param name The name of the custom property.
8776  * @since 13
8777  */
8778 void OH_ArkUI_NodeUtils_RemoveCustomProperty(ArkUI_NodeHandle node, const char* name);
8779 
8780 /**
8781  * @brief Get the value of the custom property of the component.
8782  *
8783  * @param node ArkUI-NodeHandle pointer.
8784  * @param name The name of the custom attribute.
8785  * @param handle The structure of the custom attribute corresponding to the key parameter name obtained.
8786  * @return Error code.
8787  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
8788  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8789  * @since 14
8790  */
8791 int32_t OH_ArkUI_NodeUtils_GetCustomProperty(ArkUI_NodeHandle node, const char* name, ArkUI_CustomProperty** handle);
8792 
8793 /**
8794  * @brief Get the parent node to obtain the component nodes created by ArkTs.
8795  *
8796  * @param node Target node object.
8797  * @return Return the pointer of the component.
8798  * @since 14
8799  */
8800 ArkUI_NodeHandle OH_ArkUI_NodeUtils_GetParentInPageTree(ArkUI_NodeHandle node);
8801 
8802 /**
8803  * @brief Retrieve all active child nodes of a node. Span will not be counted in the children.
8804  *
8805  * @param head Pass in the node that needs to be obtained.
8806  * @param handle The structure corresponding to the sub node information of the head node.
8807  * @return Error code.
8808  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
8809  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8810  * @since 14
8811  */
8812 int32_t OH_ArkUI_NodeUtils_GetActiveChildrenInfo(ArkUI_NodeHandle head, ArkUI_ActiveChildrenInfo** handle);
8813 
8814 /**
8815  * @brief Retrieve the root node of the current page.
8816  *
8817  * @param node Target node object.
8818  * @return Return the pointer of the component.
8819  * @since 14
8820  */
8821 ArkUI_NodeHandle OH_ArkUI_NodeUtils_GetCurrentPageRootNode(ArkUI_NodeHandle node);
8822 
8823 /**
8824  * @brief Retrieve whether the component is labeled by C-API.
8825  *
8826  * @param node Target node object.
8827  * @return Return whether the node is a Tag created by C-API,
8828  *         true represents created by C-API, false represents not created by C-API.
8829  * @since 14
8830  */
8831 bool OH_ArkUI_NodeUtils_IsCreatedByNDK(ArkUI_NodeHandle node);
8832 
8833 /**
8834  * @brief Get the type of node.
8835  *
8836  * @param node Target node object.
8837  * @return Return the type of the node.
8838  *         For specific open types, refer to {@link ArkUI_NodeType}. For unopened nodes, return -1.
8839  * @since 14
8840  */
8841 int32_t OH_ArkUI_NodeUtils_GetNodeType(ArkUI_NodeHandle node);
8842 
8843 /**
8844  * @brief Get info of the window to which the node belongs.
8845  *
8846  * @param node Target node object.
8847  * @param info Window info. Use {@link OH_ArkUI_HostWindowInfo_Destroy} to release memory.
8848  * @return Error code.
8849  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
8850  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8851  *         {@link ARKUI_ERROR_CODE_NODE_NOT_ON_MAIN_TREE} The node is not mounted.
8852  * @since 15
8853  */
8854 int32_t OH_ArkUI_NodeUtils_GetWindowInfo(ArkUI_NodeHandle node, ArkUI_HostWindowInfo** info);
8855 
8856 /**
8857  * @brief Obtains the index of the current FrameNode's first child node which is on the tree.
8858  *
8859  * @param node Indicates the target node.
8860  * @param index The index of the subnode.
8861  * @return Error code.
8862  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
8863  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8864  * @since 15
8865  */
8866 int32_t OH_ArkUI_NodeUtils_GetFirstChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* index);
8867 
8868 /**
8869  * @brief Obtains the index of the current FrameNode's last child node which is on the tree.
8870  *
8871  * @param node Indicates the target node.
8872  * @param index the index of the subnode.
8873  * @return Error code.
8874  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
8875  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8876  * @since 15
8877  */
8878 int32_t OH_ArkUI_NodeUtils_GetLastChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* index);
8879 
8880 /**
8881  * @brief Obtains a subnode by position with the expand mode.
8882  *
8883  * @param node Indicates the target node.
8884  * @param position Indicates the position of the subnode.
8885  * @param subnode The pointer to the subnode.
8886  * @param expandMode Indicates the expand mode. {@link ArkUI_ExpandMode}.
8887  * @return Error code.
8888  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
8889  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8890  * @since 15
8891  */
8892 int32_t OH_ArkUI_NodeUtils_GetChildWithExpandMode(ArkUI_NodeHandle node, int32_t position,
8893     ArkUI_NodeHandle* subnode, uint32_t expandMode);
8894 
8895 /**
8896  * @brief Collapse the ListItem in its expanded state.
8897  *
8898  * @param node Node objects that need to be registered for events.
8899  * @param userData Custom event parameters are carried back in the callback parameter when the event is triggered.
8900  * @param onFinish The callback triggered after the completion of the folding animation.
8901  * @return Error code.
8902  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
8903  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8904  *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
8905  * @since 12
8906  */
8907 int32_t OH_ArkUI_List_CloseAllSwipeActions(ArkUI_NodeHandle node, void* userData, void (*onFinish)(void* userData));
8908 
8909 /**
8910 * @brief Obtain the UIContext pointer to the page where the node is located.
8911 *
8912 * @param node The node.
8913 * @return The UIContext pointer.
8914 *         If a null pointer is returned, it may be because the node is empty.
8915 * @since 12
8916 */
8917 ArkUI_ContextHandle OH_ArkUI_GetContextByNode(ArkUI_NodeHandle node);
8918 
8919 /**
8920 * @brief The event called when the system color mode changes.
8921 *        Only one system color change callback can be registered for the same component.
8922 *
8923 * @param node Indicates the target node.
8924 * @param userData Indicates the custom data to be saved.
8925 * @param onColorModeChange Callback Events.
8926 * @return Error code.
8927 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
8928 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8929 *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
8930 * @since 12
8931 */
8932 int32_t OH_ArkUI_RegisterSystemColorModeChangeEvent(ArkUI_NodeHandle node,
8933     void* userData, void (*onColorModeChange)(ArkUI_SystemColorMode colorMode, void* userData));
8934 
8935 /**
8936 * @brief Unregister the event callback when the system color mode changes.
8937 *
8938 * @param node Indicates the target node.
8939 * @since 12
8940 */
8941 void OH_ArkUI_UnregisterSystemColorModeChangeEvent(ArkUI_NodeHandle node);
8942 
8943 /**
8944 * @brief The event called when the system font style changes.
8945 *        Only one system font change callback can be registered for the same component.
8946 *
8947 * @param node Indicates the target node.
8948 * @param userData Indicates the custom data to be saved.
8949 * @param onFontStyleChange Callback Events.
8950 * @return Error code.
8951 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
8952 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8953 *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
8954 * @since 12
8955 */
8956 int32_t OH_ArkUI_RegisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node,
8957     void* userData, void (*onFontStyleChange)(ArkUI_SystemFontStyleEvent* event, void* userData));
8958 
8959 /**
8960 * @brief Unregister the event callback when the system font style changes.
8961 *
8962 * @param node Indicates the target node.
8963 * @since 12
8964 */
8965 void OH_ArkUI_UnregisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node);
8966 
8967 /**
8968  * @brief Retrieve the font size value for system font change events.
8969  *
8970  * @param event Indicates a pointer to the current system font change event.
8971  * @return Updated system font size scaling factor. Default value: 1.0.
8972  * @since 12
8973  */
8974 float OH_ArkUI_SystemFontStyleEvent_GetFontSizeScale(const ArkUI_SystemFontStyleEvent* event);
8975 
8976 /**
8977  * @brief Retrieve the font thickness values for system font change events.
8978  *
8979  * @param event Indicates a pointer to the current system font change event.
8980  * @return The updated system font thickness scaling factor. Default value: 1.0.
8981  * @since 12
8982  */
8983 float OH_ArkUI_SystemFontStyleEvent_GetFontWeightScale(const ArkUI_SystemFontStyleEvent* event);
8984 
8985 /**
8986  * @brief Move the node handle to target parent node as child.
8987  *
8988  * @param node The node handle of the node to move.
8989  * @param target_parent The node handle of target parent.
8990  * @param index Indicates the index which the node is moved to. If the value is a nagative number of invalid, the
8991  *              node is moved to the end of the target parent node.
8992  * @return Error code.
8993  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
8994  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8995  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
8996  * @since 18
8997  */
8998 int32_t OH_ArkUI_NodeUtils_MoveTo(ArkUI_NodeHandle node, ArkUI_NodeHandle target_parent, int32_t index);
8999 
9000 /**
9001  * @brief Set the cross-language option of the target node handle.
9002  *
9003  * @param node The target node handle.
9004  * @param option The cross-language option {@link ArkUI_CrossLanguageOption}.
9005  * @return Error code.
9006  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9007  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9008  * @since 15
9009  */
9010 int32_t OH_ArkUI_NodeUtils_SetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option);
9011 
9012 /**
9013  * @brief Get the cross-language option of the target node handle.
9014  *
9015  * @param node The target node handle.
9016  * @param option The cross-language option {@link ArkUI_CrossLanguageOption}.
9017  * @return Error code.
9018  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9019  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9020  * @since 15
9021  */
9022 int32_t OH_ArkUI_NodeUtils_GetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option);
9023 
9024 /**
9025  * @brief Registers a callback for node when layout is completed.
9026  *
9027  * @param node Indicates the target node.
9028  * @param userData Indicates the custom data used in onLayoutCompleted callback function.
9029  * @param onLayoutCompleted Indicates the function when layout completed is callback.
9030  * @return error code
9031            {@link ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL} if the operation is successful.
9032  *         {@link ARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER} if a parameter is incorrect.
9033  * @since 15
9034  */
9035 int32_t OH_ArkUI_RegisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node,
9036     void* userData, void (*onLayoutCompleted)(void* userData));
9037 
9038 
9039 /**
9040  * @brief Registers a callback for node when draw is completed.
9041  *
9042  * @param node Indicates the target node.
9043  * @param userData Indicates the custom data used in onDrawCompleted callback function.
9044  * @param onDrawCompleted Indicates the function when draw completed is callback.
9045  * @return error code
9046            {@link ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL} if the operation is successful.
9047  *         {@link ARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER} if a parameter is incorrect.
9048  * @since 15
9049  */
9050 int32_t OH_ArkUI_RegisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle node,
9051     void* userData, void (*onDrawCompleted)(void* userData));
9052 
9053 /**
9054  * @brief Unregisters the layout completed callback for node.
9055  *
9056  * @param node Indicates the target node.
9057  * @return error code
9058            {@link ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL} if the operation is successful.
9059  *         {@link ARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER} if a parameter is incorrect.
9060  * @since 15
9061  */
9062 int32_t OH_ArkUI_UnregisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node);
9063 
9064 /**
9065  * @brief Unregisters the draw completed callback for node.
9066  *
9067  * @param node Indicates the target node.
9068  * @return error code
9069            {@link ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL} if the operation is successful.
9070  *         {@link ARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER} if a parameter is incorrect.
9071  * @since 15
9072  */
9073 int32_t OH_ArkUI_UnregisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle node);
9074 
9075 /**
9076  * @brief Get the node handle by id.
9077  *
9078  * @param id The id of the target node handle.
9079  * @param node The handle of target node handle.
9080  * @return Error code.
9081  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9082  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9083  * @since 15
9084  */
9085 int32_t OH_ArkUI_NodeUtils_GetAttachedNodeHandleById(const char* id, ArkUI_NodeHandle* node);
9086 
9087 /**
9088  * @brief Get the snapshot pixelmap for the given node synchronously, will get error if the node is not on the
9089  * tree or is not rendered yet.
9090  * Note: the pixelmap should be released through OH_PixelmapNative_Release when it's not used any more.
9091  *
9092  * @param node Indicates the target node.
9093  * @param snapshotOptions the given configuration for taking snapshot, can be null for using default.
9094  * @param pixelmap Pixelmap pointer created by system, it's the out result.
9095  * @return Returns the result code.
9096  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9097  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9098  *         Returns {@link ARKUI_ERROR_CODE_INTERNAL_ERROR} if the snapshot taking failed will null pixelmap returned.
9099  *         Returns {@link ARKUI_ERROR_CODE_COMPONENT_SNAPSHOT_TIMEOUT} if the snapshot taking is timeout.
9100  * @since 15
9101  */
9102 int32_t OH_ArkUI_GetNodeSnapshot(ArkUI_NodeHandle node, ArkUI_SnapshotOptions* snapshotOptions,
9103     OH_PixelmapNative** pixelmap);
9104 
9105 /**
9106  * @brief Obtains the offset of a specific node relative to its parent node.
9107  *
9108  * @param node Target node.
9109  * @param globalOffset Offset of the target node relative to its parent node, in px.
9110  * @return Returns the result code.
9111  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9112  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9113  * @since 15
9114  */
9115 int32_t OH_ArkUI_NodeUtils_GetPositionToParent(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffset);
9116 
9117 #ifdef __cplusplus
9118 };
9119 #endif
9120 
9121 #endif // ARKUI_NATIVE_NODE_H
9122 /** @} */
9123