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