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