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