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