• 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     /** XComponent of type TEXTURE.
95      *  @since 16
96      */
97     ARKUI_NODE_XCOMPONENT_TEXTURE,
98     /** Check box group.
99      *  @since 15
100      */
101     ARKUI_NODE_CHECKBOX_GROUP = 21,
102     /** Stack container. */
103     ARKUI_NODE_STACK = MAX_NODE_SCOPE_NUM,
104     /** Swiper. */
105     ARKUI_NODE_SWIPER,
106     /** Scrolling container. */
107     ARKUI_NODE_SCROLL,
108     /** List. */
109     ARKUI_NODE_LIST,
110     /** List item. */
111     ARKUI_NODE_LIST_ITEM,
112     /** List item group. */
113     ARKUI_NODE_LIST_ITEM_GROUP,
114     /** Column container. */
115     ARKUI_NODE_COLUMN,
116     /** Row container. */
117     ARKUI_NODE_ROW,
118     /** Flex container. */
119     ARKUI_NODE_FLEX,
120     /** Refresh component. */
121     ARKUI_NODE_REFRESH,
122     /** Water flow container. */
123     ARKUI_NODE_WATER_FLOW,
124     /** Water flow item. */
125     ARKUI_NODE_FLOW_ITEM,
126     /** Relative layout component. */
127     ARKUI_NODE_RELATIVE_CONTAINER,
128     /** Grid. */
129     ARKUI_NODE_GRID,
130     /** Grid item. */
131     ARKUI_NODE_GRID_ITEM,
132     /** Custom_Span. */
133     ARKUI_NODE_CUSTOM_SPAN,
134 } ArkUI_NodeType;
135 
136 /**
137  * @brief Defines the general input parameter structure of the {@link setAttribute} function.
138  *
139  * @since 12
140  */
141 typedef struct {
142     /** Numeric array. */
143     const ArkUI_NumberValue* value;
144     /** Size of the numeric array. */
145     int32_t size;
146     /** String type. */
147     const char* string;
148     /** Object type. */
149     void* object;
150 } ArkUI_AttributeItem;
151 
152 /**
153  * @brief Defines the ArkUI style attributes that can be set on the native side.
154  *
155  * @since 12
156  */
157 typedef enum {
158     /**
159      * @brief Defines the width attribute, which can be set, reset, and obtained as required through APIs.
160      *
161      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
162      * .value[0].f32: width, in vp.\n
163      * \n
164      * Format of the return value {@link ArkUI_AttributeItem}:\n
165      * .value[0].f32: width, in vp.\n
166      *
167      */
168     NODE_WIDTH = 0,
169     /**
170      * @brief Defines the height attribute, which can be set, reset, and obtained as required through APIs.
171      *
172      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
173      * .value[0].f32: height, in vp.\n
174      * \n
175      * Format of the return value {@link ArkUI_AttributeItem}:\n
176      * .value[0].f32: height, in vp.\n
177      *
178      */
179     NODE_HEIGHT,
180     /**
181      * @brief Defines the background color attribute, which can be set, reset, and obtained as required through APIs.
182      *
183      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
184      * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
185      * \n
186      * Format of the return value {@link ArkUI_AttributeItem}:\n
187      * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
188      *
189      */
190     NODE_BACKGROUND_COLOR,
191     /**
192      * @brief Defines the background image attribute, which can be set, reset, and obtained as required through APIs.
193      *
194      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
195      * .string: image address;\n
196      * .value[0]?.i32: whether to repeat the image. Optional. The parameter type is {@link ArkUI_ImageRepeat}.
197      * The default value is <b>ARKUI_IMAGE_REPEAT_NONE</b>.\n
198      * \n
199      * Format of the return value {@link ArkUI_AttributeItem}:\n
200      * .string: image address;\n
201      * .value[0].i32: whether to repeat the image. The parameter type is {@link ArkUI_ImageRepeat}.\n
202      *
203      */
204     NODE_BACKGROUND_IMAGE,
205     /**
206      * @brief Defines the padding attribute, which can be set, reset, and obtained as required through APIs.
207      *
208      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
209      * 1: Specify the same padding for the four directions. \n
210      * .value[0].f32: padding, in vp.\n
211      * 2: Specify different paddings for different directions. \n
212      * .value[0].f32: top padding, in vp.\n
213      * .value[1].f32: right padding, in vp.\n
214      * .value[2].f32: bottom padding, in vp.\n
215      * .value[3].f32: left padding, in vp.\n
216      * \n
217      * Format of the return value {@link ArkUI_AttributeItem}:\n
218      * .value[0].f32: top padding, in vp.\n
219      * .value[1].f32: right padding, in vp.\n
220      * .value[2].f32: bottom padding, in vp.\n
221      * .value[3].f32: left padding, in vp.\n
222      *
223      */
224     NODE_PADDING,
225     /**
226      * @brief Defines the component ID attribute, which can be set, reset, and obtained as required through APIs.
227      *
228      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
229      * .string: component ID.\n
230      * \n
231      * Format of the return value {@link ArkUI_AttributeItem}:\n
232      * .string: component ID.\n
233      *
234      */
235     NODE_ID,
236     /**
237      * @brief Defines the interactivity attribute, which can be set, reset, and obtained as required through APIs.
238      *
239      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
240      * .value[0].i32: The value <b>true</b> means that the component can interact with users, and <b>false</b> means
241      * the opposite.\n
242      * \n
243      * Format of the return value {@link ArkUI_AttributeItem}:\n
244      * .value[0].i32: The value <b>1</b> means that the component can interact with users, and <b>0</b> means
245      * the opposite. \n
246      *
247      */
248     NODE_ENABLED,
249     /**
250      * @brief Defines the margin attribute, which can be set, reset, and obtained as required through APIs.
251      *
252      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
253      * 1: Specify the same margin for the four directions. \n
254      * .value[0].f32: margin, in vp.\n
255      * 2: Specify different margins for different directions. \n
256      * .value[0].f32: top margin, in vp.\n
257      * .value[1].f32: right margin, in vp.\n
258      * .value[2].f32: bottom margin, in vp.\n
259      * .value[3].f32: left margin, in vp.\n
260      * \n
261      * Format of the return value {@link ArkUI_AttributeItem}:\n
262      * .value[0].f32: top margin, in vp.\n
263      * .value[1].f32: right margin, in vp.\n
264      * .value[2].f32: bottom margin, in vp.\n
265      * .value[3].f32: left margin, in vp.\n
266      *
267      */
268     NODE_MARGIN,
269     /**
270      * @brief Defines the translate attribute, which can be set, reset, and obtained as required through APIs.
271      *
272      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
273      * .value[0].f32: distance to translate along the x-axis, in vp. The default value is <b>0</b>.\n
274      * .value[1].f32: distance to translate along the y-axis, in vp. The default value is <b>0</b>.\n
275      * .value[2].f32: distance to translate along the z-axis, in vp. The default value is <b>0</b>. \n
276      * \n
277      * Format of the return value {@link ArkUI_AttributeItem}:\n
278      * .value[0].f32: distance to translate along the x-axis, in vp.\n
279      * .value[1].f32: distance to translate along the y-axis, in vp.\n
280      * .value[2].f32: distance to translate along the z-axis, in vp. \n
281      *
282      */
283     NODE_TRANSLATE,
284     /**
285      * @brief Defines the scale attribute, which can be set, reset, and obtained as required through APIs.
286      *
287      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
288      * .value[0].f32: scale factor along the x-axis. The default value is <b>1</b>.\n
289      * .value[1].f32: scale factor along the y-axis. The default value is <b>1</b>. \n
290      * \n
291      * Format of the return value {@link ArkUI_AttributeItem}:\n
292      * .value[0].f32: scale factor along the x-axis.\n
293      * .value[1].f32: scale factor along the y-axis. \n
294      *
295      */
296     NODE_SCALE,
297     /**
298      * @brief Defines the rotate attribute, which can be set, reset, and obtained as required through APIs.
299      *
300      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
301      * .value[0].f32: X coordinate of the rotation axis vector. The default value is <b>0</b>.\n
302      * .value[1].f32: Y coordinate of the rotation axis vector. The default value is <b>0</b>.\n
303      * .value[2].f32: Z coordinate of the rotation axis vector. The default value is <b>0</b>.\n
304      * .value[3].f32: rotation angle. The default value is <b>0</b>.\n
305      * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp.
306      * The default value is <b>0</b>. \n
307      * \n
308      * Format of the return value {@link ArkUI_AttributeItem}:\n
309      * .value[0].f32: X coordinate of the rotation axis vector.\n
310      * .value[1].f32: Y coordinate of the rotation axis vector.\n
311      * .value[2].f32: Z coordinate of the rotation axis vector.\n
312      * .value[3].f32: rotation angle.\n
313      * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp. \n
314      *
315      */
316     NODE_ROTATE,
317     /**
318      * @brief Sets the brightness attribute, which can be set, reset, and obtained as required through APIs.
319      *
320      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
321      * .value[0].f32: brightness value. The default value is <b>1.0</b>, and the recommended value range is [0, 2]. \n
322      * \n
323      * Format of the return value {@link ArkUI_AttributeItem}:\n
324      * .value[0].f32: brightness value. \n
325      *
326      */
327     NODE_BRIGHTNESS,
328     /**
329      * @brief Sets the saturation attribute, which can be set, reset, and obtained as required through APIs.
330      *
331      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
332      * .value[0].f32: saturation value. The default value is <b>1.0</b>, and the recommended value range is [0, 50]. \n
333      * \n
334      * Format of the return value {@link ArkUI_AttributeItem}: \n
335      * .value[0].f32: saturation value. \n
336      *
337      */
338     NODE_SATURATION,
339     /**
340      * @brief Sets the blur attribute, which can be set, reset, and obtained as required through APIs.
341      *
342      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
343      * .value[0].f32: blur radius. A larger value indicates a higher blur degree. If the value is <b>0</b>,
344      * the component is not blurred. The unit is vp. The default value is <b>0.0</b>. \n
345      * \n
346      * Format of the return value {@link ArkUI_AttributeItem}:\n
347      * .value[0].f32: blur radius. The larger the fuzzy radius, the more blurred the image. If the value is <b>0</b>,
348      * the image is not blurred. The unit is vp. \n
349      *
350      */
351     NODE_BLUR,
352     /**
353      * @brief Sets the gradient attribute, which can be set, reset, and obtained as required through APIs.
354      *
355      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
356      * .value[0].f32: start angle of the linear gradient. A positive value indicates a clockwise rotation from the
357      * origin, (0, 0). The default value is <b>180</b>.\n
358      * .value[1].i32: direction of the linear gradient. It does not take effect when <b>angle</b> is set.
359      * The parameter type is {@link ArkUI_LinearGradientDirection}. \n
360      * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>. \n
361      * .object: array of color stops, each of which consists of a color and its stop position.
362      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
363      * colors: colors of the color stops. \n
364      * stops: stop positions of the color stops. \n
365      * size: number of colors. \n
366      * \n
367      * Format of the return value {@link ArkUI_AttributeItem}:\n
368      * .value[0].f32: start angle of the linear gradient. \n
369      * .value[1].i32: direction of the linear gradient. It does not take effect when <b>angle</b> is set. \n
370      * .value[2].i32: whether the colors are repeated. \n
371      * .object: array of color stops, each of which consists of a color and its stop position.
372      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
373      * colors: colors of the color stops. \n
374      * stops: stop positions of the color stops. \n
375      * size: number of colors. \n
376      *
377      */
378     NODE_LINEAR_GRADIENT,
379     /**
380      * @brief Sets the alignment attribute, which can be set, reset, and obtained as required through APIs.
381      *
382      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
383      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
384      * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
385      * \n
386      * Format of the return value {@link ArkUI_AttributeItem}:\n
387      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
388      *
389      */
390     NODE_ALIGNMENT,
391     /**
392      * @brief Defines the opacity attribute, which can be set, reset, and obtained as required through APIs.
393      *
394      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
395      * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
396      * \n
397      * Format of the return value {@link ArkUI_AttributeItem}:\n
398      * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
399      *
400      */
401     NODE_OPACITY,
402     /**
403      * @brief Defines the border width attribute, which can be set, reset, and obtained as required through APIs.
404      *
405      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
406      * 1: .value[0].f32: width of the four borders. \n
407      * 2: .value[0].f32: width of the top border. \n
408      * .value[1].f32: width of the right border. \n
409      * .value[2].f32: width of the bottom border. \n
410      * .value[3].f32: width of the left border. \n
411      * \n
412      * Format of the return value {@link ArkUI_AttributeItem}:\n
413      * .value[0].f32: width of the top border. \n
414      * .value[1].f32: width of the right border. \n
415      * .value[2].f32: width of the bottom border. \n
416      * .value[3].f32: width of the left border. \n
417      *
418      */
419     NODE_BORDER_WIDTH,
420     /**
421      * @brief Defines the border corner radius attribute, which can be set, reset, and obtained as required through APIs.
422      *
423      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
424      * 1: .value[0].f32: radius of the four corners. \n
425      * 2: .value[0].f32: radius of the upper left corner. \n
426      * .value[1].f32: radius of the upper right corner. \n
427      * .value[2].f32: radius of the lower left corner. \n
428      * .value[3].f32: radius of the lower right corner. \n
429      * \n
430      * Format of the return value {@link ArkUI_AttributeItem}:\n
431      * .value[0].f32: radius of the upper left corner. \n
432      * .value[1].f32: radius of the upper right corner. \n
433      * .value[2].f32: radius of the lower left corner. \n
434      * .value[3].f32: radius of the lower right corner. \n
435      *
436      */
437     NODE_BORDER_RADIUS,
438     /**
439      * @brief Defines the border color attribute, which can be set, reset, and obtained as required through APIs.
440      *
441      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
442      * 1: .value[0].u32: color of the four borders, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
443      * 2: .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
444      * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
445      * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
446      * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
447      * \n
448      * Format of the return value {@link ArkUI_AttributeItem}:\n
449      * .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
450      * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
451      * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
452      * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
453      *
454      */
455     NODE_BORDER_COLOR,
456     /**
457      * @brief Defines the border line style attribute, which can be set, reset, and obtained as required through APIs.
458      *
459      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
460      * 1: .value[0].i32: line style of the four borders. The parameter type is {@link ArkUI_BorderStyle}.
461      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
462      * 2: .value[0].i32: line style of the top border. The parameter type is {@link ArkUI_BorderStyle}.
463      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
464      * .value[1].i32: line style of the right border. The parameter type is {@link ArkUI_BorderStyle}.
465      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
466      * .value[2].i32: line style of the bottom border. The parameter type is {@link ArkUI_BorderStyle}.
467      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
468      * .value[3].i32: line style of the left border. The parameter type is {@link ArkUI_BorderStyle}.
469      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
470      * \n
471      * Format of the return value {@link ArkUI_AttributeItem}:\n
472      * .value[0].i32: line style of the top border. \n
473      * .value[1].i32: line style of the right border. \n
474      * .value[2].i32: line style of the bottom border. \n
475      * .value[3].i32: line style of the left border. \n
476      *
477      */
478     NODE_BORDER_STYLE,
479     /**
480      * @brief Defines the z-index attribute for the stack sequence.
481      * This attribute can be set, reset, and obtained as required through APIs.
482      *
483      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
484      * .value[0].f32: z-index value. \n
485      * \n
486      * Format of the return value {@link ArkUI_AttributeItem}:\n
487      * .value[0].f32: z-index value. \n
488      *
489      */
490     NODE_Z_INDEX,
491     /**
492      * @brief Defines the visibility attribute, which can be set, reset, and obtained as required through APIs.
493      *
494      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
495      * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
496      * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
497      * \n
498      * Format of the return value {@link ArkUI_AttributeItem}:\n
499      * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
500      * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
501      *
502      */
503     NODE_VISIBILITY,
504     /**
505      * @brief Defines the clip attribute, which can be set, reset, and obtained as required through APIs.
506      *
507      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
508      * .value[0].i32: whether to clip the component based on the parent container bounds.
509      * The value <b>0</b> means to clip the component, and <b>1</b> means the opposite. \n
510      * \n
511      * Format of the return value {@link ArkUI_AttributeItem}:\n
512      * .value[0].i32: whether to clip the component based on the parent container bounds.
513      * The value <b>0</b> means to clip the component, and <b>1</b> means the opposite. \n
514      *
515      */
516     NODE_CLIP,
517     /**
518      * @brief Defines the clipping region on the component.
519      * This attribute can be set and obtained as required through APIs.
520      *
521      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute,
522      * which supports five types of shapes:\n
523      * 1. Rectangle:\n
524      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
525      * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape.\n
526      * .value[1].f32: width of the rectangle.\n
527      * .value[2].f32: height of rectangle.\n
528      * .value[3].f32: width of the rounded corner of the rectangle.\n
529      * .value[4].f32: height of the rounded corner of the rectangle.\n
530      * 2. Circle:\n
531      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
532      * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
533      * .value[1].f32: width of the circle.\n
534      * .value[2].f32: height of the circle.\n
535      * 3. Ellipse:\n
536      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
537      * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
538      * .value[1].f32: width of the ellipse.\n
539      * .value[2].f32: height of the ellipse.\n
540      * 4. Path:\n
541      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
542      * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
543      * .value[1].f32: width of the path.\n
544      * .value[2].f32: height of the path.\n
545      * .string: command for drawing the path.\n
546      * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
547      * 1. Rectangle:\n
548      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
549      * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape.\n
550      * .value[1].f32: width of the rectangle.\n
551      * .value[2].f32: height of rectangle.\n
552      * .value[3].f32: width of the rounded corner of the rectangle.\n
553      * .value[4].f32: height of the rounded corner of the rectangle.\n
554      * 2. Circle:\n
555      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
556      * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
557      * .value[1].f32: width of the circle.\n
558      * .value[2].f32: height of the circle.\n
559      * 3. Ellipse:\n
560      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
561      * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
562      * .value[1].f32: width of the ellipse.\n
563      * .value[2].f32: height of the ellipse.\n
564      * 4. Path:\n
565      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
566      * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
567      * .value[1].f32: width of the path.\n
568      * .value[2].f32: height of the path.\n
569      * .string: command for drawing the path.\n
570      *
571      */
572     NODE_CLIP_SHAPE,
573     /**
574      * @brief Defines the transform attribute, which can be used to translate, rotate, and scale images.
575      * This attribute can be set, reset, and obtained as required through APIs.
576      *
577      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
578      * .data[0...15].f32: 16 floating-point numbers. \n
579      * \n
580      * Format of the return value {@link ArkUI_AttributeItem}:\n
581      * .data[0...15].f32: 16 floating-point numbers. \n
582      *
583      */
584     NODE_TRANSFORM,
585     /**
586      * @brief Defines the hit test behavior attribute, which can be set, reset, and obtained as required through APIs.
587      *
588      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
589      * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
590      * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
591      * \n
592      * Format of the return value {@link ArkUI_AttributeItem}:\n
593      * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
594      * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
595      *
596      */
597     NODE_HIT_TEST_BEHAVIOR,
598     /**
599      * @brief Defines the offset attribute, which specifies the offset of the component's upper left corner relative
600      * to the parent container's. This attribute can be set, reset, and obtained as required through APIs.
601      *
602      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
603      * .value[0].f32: X coordinate. \n
604      * .value[1].f32: Y coordinate. \n
605      * \n
606      * Format of the return value {@link ArkUI_AttributeItem}:\n
607      * .value[0].f32: X coordinate. \n
608      * .value[1].f32: Y coordinate. \n
609      *
610      */
611     NODE_POSITION,
612     /**
613      * @brief Defines the shadow attribute, which can be set, reset, and obtained as required through APIs.
614      *
615      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
616      * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
617      * \n
618      * Format of the return value {@link ArkUI_AttributeItem}:\n
619      * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
620      *
621      */
622     NODE_SHADOW,
623     /**
624      * @brief Defines the custom shadow effect. This attribute can be set, reset, and obtained as required through APIs.
625      *
626      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
627      * .value[0]?.f32: blur radius of the shadow, in vp.\n
628      * .value[1]?.i32: whether to enable the coloring strategy. The value <b>1</b> means to enable the coloring
629      * strategy, and <b>0</b> (default value) means the opposite.\n
630      * .value[2]?.f32: offset of the shadow along the x-axis, in px.\n
631      * .value[3]?.f32: offset of the shadow along the y-axis, in px.\n
632      * .value[4]?.i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
633      * .value[5]?.u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
634      * .value[6]?.u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
635      * means the opposite.\n
636      *
637      * \n
638      * Format of the return value {@link ArkUI_AttributeItem}:\n
639      * .value[0].f32: blur radius of the shadow, in vp.\n
640      * .value[1].i32: whether to enable the coloring strategy. \n
641      * .value[2].f32: offset of the shadow along the x-axis, in px.\n
642      * .value[3].f32: offset of the shadow along the y-axis, in px.\n
643      * .value[4].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
644      * .value[5].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
645      * .value[6].u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
646      * means the opposite.\n
647      *
648      */
649     NODE_CUSTOM_SHADOW,
650     /**
651      * @brief Defines the background image width and height.
652      * This attribute can be set, reset, and obtained as required through APIs.
653      *
654      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
655      * .value[0].f32: width of the image. The value range is [0, +∞), and the unit is vp. \n
656      * .value[1].f32: height of the image. The value range is [0, +∞), and the unit is vp. \n
657      * \n
658      * Format of the return value {@link ArkUI_AttributeItem}:\n
659      * .value[0].f32: width of the image, in vp. \n
660      * .value[1].f32: height of the image, in vp. \n
661      *
662      */
663     NODE_BACKGROUND_IMAGE_SIZE,
664     /**
665      * @brief Defines the background image size.
666      * This attribute can be set, reset, and obtained as required through APIs.
667      *
668      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
669      * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
670      * \n
671      * Format of the return value {@link ArkUI_AttributeItem}:\n
672      * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
673      *
674      */
675     NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE,
676     /**
677      * @brief Defines the background blur attribute, which can be set, reset, and obtained as required through APIs.
678      *
679      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\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      * \n
687      * Format of the return value {@link ArkUI_AttributeItem}:\n
688      * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
689      * .value[1].i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
690      * .value[2].i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
691      * .value[3].f32: blur degree. The value range is [0.0, 1.0]. \n
692      * .value[4].f32: start boundary of grayscale blur. \n
693      * .value[5].f32: end boundary of grayscale blur. \n
694      *
695      */
696     NODE_BACKGROUND_BLUR_STYLE,
697     /**
698      * @brief Defines the transform center attribute, which can be set, reset, and obtained as required through APIs.
699      *
700      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
701      * .value[0]?.f32: X coordinate of the center point, in vp.\n
702      * .value[1]?.f32: Y coordinate of the center point, in vp.\n
703      * .value[2]?.f32: Z coordinate of the center point, in vp.\n
704      * .value[3]?.f32 : X coordinate of the center point, expressed in a number that represents a percentage.
705      * For example, 0.2 indicates 20%. This attribute overwrites value[0].f32. The default value is <b>0.5f</b>. \n
706      * .value[4]?.f32 : Y coordinate of the center point, expressed in a number that represents a percentage.
707      * For example, 0.2 indicates 20%. This attribute overwrites value[1].f32. The default value is <b>0.5f</b>. \n
708      * .value[5]?.f32 : Z coordinate of the center point, expressed in a number that represents a percentage.
709      * For example, 0.2 indicates 20%. This attribute overwrites value[2].f32. The default value is <b>0.0f</b>. \n
710      * \n
711      * Format of the return value {@link ArkUI_AttributeItem}:\n
712      * .value[0].f32: X coordinate of the center point, in vp.\n
713      * .value[1].f32: Y coordinate of the center point, in vp.\n
714      * .value[2].f32: Z coordinate of the center point, in vp.\n
715      * Note: If the coordinate is expressed in a number that represents a percentage, the attribute obtaining API
716      * returns the calculated value in vp.
717      *
718      */
719     NODE_TRANSFORM_CENTER,
720     /**
721      * @brief Defines the transition opacity attribute, which can be set, reset, and obtained as required through APIs.
722      *
723      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
724      * .value[0].f32: opacity values of the start and end points.\n
725      * .value[1].i32: animation duration, in milliseconds.\n
726      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
727      * .value[3]?.i32: animation delay duration, in milliseconds.\n
728      * .value[4]?.i32: number of times that the animation is played.\n
729      * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}.\n
730      * .value[6]?.f32: animation playback speed.\n
731      * \n
732      * Format of the return value {@link ArkUI_AttributeItem}:\n
733      * .value[0].f32: opacity values of the start and end points.\n
734      * .value[1].i32: animation duration, in milliseconds.\n
735      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
736      * .value[3].i32: animation delay duration, in milliseconds. \n
737      * .value[4].i32: number of times that the animation is played. \n
738      * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
739      * .value[6].f32: animation playback speed. \n
740      *
741      */
742     NODE_OPACITY_TRANSITION,
743     /**
744      * @brief Defines the transition rotation attribute, which can be set, reset, and obtained as required through APIs.
745      *
746      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
747      * .value[0].f32: X-component of the rotation vector. \n
748      * .value[1].f32: Y-component of the rotation vector. \n
749      * .value[2].f32: Z-component of the rotation vector \n
750      * .value[3].f32: angle. \n
751      * .value[4].f32: line of sight. The default value is <b>0.0f</b>. \n
752      * .value[5].i32: animation duration, in milliseconds. \n
753      * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
754      * .value[7]?.i32: animation delay duration, in milliseconds. \n
755      * .value[8]?.i32: number of times that the animation is played. \n
756      * .value[9]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
757      * .value[10]?.f32: animation playback speed. \n
758      * \n
759      * Format of the return value {@link ArkUI_AttributeItem}:\n
760      * .value[0].f32: X-component of the rotation vector. \n
761      * .value[1].f32: Y-component of the rotation vector. \n
762      * .value[2].f32: Z-component of the rotation vector \n
763      * .value[3].f32: angle. \n
764      * .value[4].f32: line of sight. \n
765      * .value[5].i32: animation duration, in milliseconds. \n
766      * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
767      * .value[7].i32: animation delay duration, in milliseconds. \n
768      * .value[8].i32: number of times that the animation is played. \n
769      * .value[9].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
770      * .value[10].f32: animation playback speed. \n
771      *
772      */
773     NODE_ROTATE_TRANSITION,
774     /**
775      * @brief Defines the transition scaling attribute, which can be set, reset, and obtained as required through APIs.
776      *
777      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
778      * .value[0].f32: scale factor along the x-axis. \n
779      * .value[1].f32: scale factor along the y-axis. \n
780      * .value[2].f32: scale factor along the z-axis. \n
781      * .value[3].i32: animation duration, in milliseconds. \n
782      * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
783      * .value[5]?.i32: animation delay duration, in milliseconds. \n
784      * .value[6]?.i32: number of times that the animation is played. \n
785      * .value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
786      * .value[8]?.f32: animation playback speed. \n
787      * \n
788      * Format of the return value {@link ArkUI_AttributeItem}:\n
789      * .value[0].f32: scale factor along the x-axis. \n
790      * .value[1].f32: scale factor along the y-axis. \n
791      * .value[2].f32: scale factor along the z-axis. \n
792      * .value[3].i32: animation duration, in milliseconds. \n
793      * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
794      * .value[5].i32: animation delay duration, in milliseconds. \n
795      * .value[6].i32: number of times that the animation is played. \n
796      * .value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
797      * .value[8].f32: animation playback speed. \n
798      *
799      */
800     NODE_SCALE_TRANSITION,
801     /**
802      * @brief Defines the transition translation attribute.
803      * This attribute can be set, reset, and obtained as required through APIs.
804      *
805      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
806      * value[0].f32: translation distance along the x-axis, in vp.\n
807      * value[1].f32: translation distance along the y-axis, in vp.\n
808      * value[2].f32: translation distance along the z-axis, in vp.\n
809      * value[3].i32: animation duration, in milliseconds. \n
810      * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
811      * value[5]?.i32: animation delay duration, in milliseconds. \n
812      * value[6]?.i32: number of times that the animation is played. \n
813      * value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
814      * value[8]?.f32: animation playback speed. \n
815      * \n
816      * Format of the return value {@link ArkUI_AttributeItem}:\n
817      * value[0].f32: translation distance along the x-axis, in vp.\n
818      * value[1].f32: translation distance along the y-axis, in vp.\n
819      * value[2].f32: translation distance along the z-axis, in vp.\n
820      * value[3].i32: animation duration, in milliseconds. \n
821      * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
822      * value[5].i32: animation delay duration, in milliseconds. \n
823      * value[6].i32: number of times that the animation is played. \n
824      * value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
825      * value[8].f32: animation playback speed. \n
826      *
827      */
828     NODE_TRANSLATE_TRANSITION,
829     /**
830      * @brief Defines the slide-in and slide-out of the component from the screen edge during transition.
831      * This attribute can be set, reset, and obtained as required through APIs.
832      *
833      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
834      * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
835      * .value[1].i32: animation duration, in milliseconds.\n
836      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
837      * .value[3]?.i32: animation delay duration, in milliseconds. \n
838      * .value[4]?.i32: number of times that the animation is played. \n
839      * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
840      * .value[6]?.f32: animation playback speed. \n
841      * \n
842      * Format of the return value {@link ArkUI_AttributeItem}:\n
843      * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
844      * .value[1].i32: animation duration, in milliseconds.\n
845      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
846      * .value[3].i32: animation delay duration, in milliseconds. \n
847      * .value[4].i32: number of times that the animation is played. \n
848      * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
849      * .value[6].f32: animation playback speed. \n
850      *
851      */
852     NODE_MOVE_TRANSITION,
853 
854     /**
855      * @brief Defines the focus attribute, which can be set, reset, and obtained as required through APIs.
856      *
857      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
858      * .value[0].i32: The parameter type is 1 or 0.
859      * \n
860      * Format of the return value {@link ArkUI_AttributeItem}:\n
861      * .value[0].i32: The parameter type is 1 or 0.
862      *
863      */
864     NODE_FOCUSABLE,
865 
866     /**
867      * @brief Defines the default focus attribute, which can be set, reset, and obtained as required through APIs.
868      *
869      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
870      * value[0].i32: The parameter type is 1 or 0.
871      * \n
872      * Format of the return value {@link ArkUI_AttributeItem}:\n
873      * value[0].i32: The parameter type is 1 or 0.
874      *
875      */
876     NODE_DEFAULT_FOCUS,
877 
878     /**
879      * @brief Defines the touch target attribute, which can be set, reset, and obtained as required through APIs.
880      *
881      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
882      * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
883      * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
884      * .data[2].f32: width of the touch target, in %. \n
885      * .data[3].f32: height of the touch target, in %. \n
886      * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
887      * \n
888      * Format of the return value {@link ArkUI_AttributeItem}:\n
889      * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
890      * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
891      * .data[2].f32: width of the touch target, in %. \n
892      * .data[3].f32: height of the touch target, in %. \n
893      * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
894      *
895      */
896     NODE_RESPONSE_REGION,
897 
898     /**
899      * @brief Defines the overlay attribute, which can be set, reset, and obtained as required through APIs.
900      *
901      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
902      * .string: mask text.\n
903      * .value[0]?.i32: position of the overlay relative to the component. Optional.
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. Optional. \n
907      * .value[2]?.f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp. Optional.
908      * \n
909      * Format of the return value {@link ArkUI_AttributeItem}:\n
910      * .string: mask text.\n
911      * .value[0].i32: position of the overlay relative to the component.
912      * The parameter type is {@link ArkUI_Alignment}.
913      * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
914      * .value[1].f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. \n
915      * .value[2].f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp.
916      *
917      *
918      */
919     NODE_OVERLAY,
920     /**
921      * @brief Defines the sweep gradient effect.
922      * This attribute can be set, reset, and obtained as required through APIs.
923      *
924      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
925      * .value[0]?.f32: X coordinate of the sweep gradient center relative to the upper left corner of the component.\n
926      * .value[1]?.f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component.\n
927      * .value[2]?.f32: start point of the sweep gradient. The default value is <b>0</b>. \n
928      * .value[3]?.f32: end point of the sweep gradient. The default value is <b>0</b>. \n
929      * .value[4]?.f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
930      * .value[5]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
931      * and <b>0</b> means the opposite.\n
932      * .object: array of color stops, each of which consists of a color and its stop position.
933      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
934      * colors: colors of the color stops. \n
935      * stops: stop positions of the color stops. \n
936      * size: number of colors. \n
937      * \n
938      * Format of the return value {@link ArkUI_AttributeItem}:\n
939      * .value[0].f32: X coordinate of the sweep gradient center relative to the upper left corner of the component. \n
940      * .value[1].f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component. \n
941      * .value[2].f32: start point of the sweep gradient. The default value is <b>0</b>. \n
942      * .value[3].f32: end point of the sweep gradient. The default value is <b>0</b>. \n
943      * .value[4].f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
944      * .value[5].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
945      * and <b>0</b> means the opposite.\n
946      * .object: array of color stops, each of which consists of a color and its stop position.
947      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
948      * colors: colors of the color stops. \n
949      * stops: stop positions of the color stops. \n
950      * size: number of colors. \n
951      *
952      */
953     NODE_SWEEP_GRADIENT,
954     /**
955      * @brief Defines the radial gradient effect.
956      * This attribute can be set, reset, and obtained as required through APIs.
957      *
958      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
959      * .value[0]?.f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
960      * .value[1]?.f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
961      * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
962      * .value[3]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
963      * and <b>0</b> means the opposite. \n
964      * .object: array of color stops, each of which consists of a color and its stop position.
965      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
966      * colors: colors of the color stops. \n
967      * stops: stop positions of the color stops. \n
968      * size: number of colors. \n
969      * \n
970      * Format of the return value {@link ArkUI_AttributeItem}:\n
971      * .value[0].f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
972      * .value[1].f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
973      * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
974      * .value[3].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
975      * and <b>0</b> means the opposite.\n
976      * .object: array of color stops, each of which consists of a color and its stop position.
977      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
978      * colors: colors of the color stops. \n
979      * stops: stop positions of the color stops. \n
980      * size: number of colors. \n
981      *
982      */
983     NODE_RADIAL_GRADIENT,
984     /**
985      * @brief Adds a mask of the specified shape to the component.
986      * This attribute can be set, reset, and obtained as required through APIs.
987      *
988      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute, which supports five types of
989      * shapes:\n
990      * 1. Rectangle:\n
991      * .value[0].u32 fill color, in 0xARGB format. \n
992      * .value[1].u32: stroke color, in 0xARGB format. \n
993      * .value[2].f32: stroke width, in vp. \n
994      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
995      * The value is <b>ARKUI_MASK_TYPE_RECTANGLE</b> for the rectangle shape.\n
996      * .value[4].f32: width of the rectangle.\n
997      * .value[5].f32: height of the rectangle.\n
998      * .value[6].f32: width of the rounded corner of the rectangle.\n
999      * .value[7].f32: height of the rounded corner of the rectangle.\n
1000      * 2. Circle:\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_CIRCLE</b> for the circle shape.\n
1006      * .value[4].f32: width of the circle.\n
1007      * .value[5].f32: height of the circle.\n
1008      * 3. Ellipse:\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_ELLIPSE</b> for the ellipse shape.\n
1014      * .value[4].f32: width of the ellipse.\n
1015      * .value[5].f32: height of the ellipse.\n
1016      * 4. Path:\n
1017      * .value[0].u32 fill color, in 0xARGB format. \n
1018      * .value[1].u32: stroke color, in 0xARGB format. \n
1019      * .value[2].f32: stroke width, in vp. \n
1020      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1021      * The value is <b>ARKUI_MASK_TYPE_PATH</b> for the path shape.\n
1022      * .value[4].f32: width of the path.\n
1023      * .value[5].f32: height of the path.\n
1024      * .string: command for drawing the path.\n
1025      * 5. Progress:\n
1026      * .value[0].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1027      * The value is <b>ARKUI_MASK_TYPE_PROSGRESS</b> for the progress shape.\n
1028      * .value[1].f32: current value of the progress indicator.\n
1029      * .value[2].f32: maximum value of the progress indicator.\n
1030      * .value[3].u32: color of the progress indicator.\n
1031      * \n
1032      * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
1033      * 1. Rectangle:\n
1034      * .value[0].u32 fill color, in 0xARGB format. \n
1035      * .value[1].u32: stroke color, in 0xARGB format. \n
1036      * .value[2].f32: stroke width, in vp. \n
1037      * .value[3].i32: mask type.\n
1038      * .value[4].f32: width of the rectangle.\n
1039      * .value[5].f32: height of the rectangle.\n
1040      * .value[6].f32: width of the rounded corner of the rectangle.\n
1041      * .value[7].f32: height of the rounded corner of the rectangle.\n
1042      * 2. Circle:\n
1043      * .value[0].u32 fill color, in 0xARGB format. \n
1044      * .value[1].u32: stroke color, in 0xARGB format. \n
1045      * .value[2].f32: stroke width, in vp. \n
1046      * .value[3].i32: mask type.\n
1047      * .value[4].f32: width of the circle.\n
1048      * .value[5].f32: height of the circle.\n
1049      * 3. Ellipse:\n
1050      * .value[0].u32 fill color, in 0xARGB format. \n
1051      * .value[1].u32: stroke color, in 0xARGB format. \n
1052      * .value[2].f32: stroke width, in vp. \n
1053      * .value[3].i32: mask type.\n
1054      * .value[4].f32: width of the ellipse.\n
1055      * .value[5].f32: height of the ellipse.\n
1056      * 4. Path:\n
1057      * .value[0].u32 fill color, in 0xARGB format. \n
1058      * .value[1].u32: stroke color, in 0xARGB format. \n
1059      * .value[2].f32: stroke width, in vp. \n
1060      * .value[3].i32: mask type.\n
1061      * .value[4].f32: width of the path.\n
1062      * .value[5].f32: height of the path.\n
1063      * .string: command for drawing the path.\n
1064      * 5. Progress:\n
1065      * .value[0].i32: mask type.\n
1066      * .value[1].f32: current value of the progress indicator.\n
1067      * .value[2].f32: maximum value of the progress indicator.\n
1068      * .value[3].u32: color of the progress indicator.\n
1069      *
1070      */
1071     NODE_MASK,
1072     /**
1073      * @brief Blends the component's background with the content of the component's child node.
1074      * This attribute can be set, reset, and obtained as required through APIs.
1075      *
1076      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1077      * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
1078      * <b>ARKUI_BLEND_MODE_NONE</b>. \n
1079      * .value[1].?i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
1080      * The default value is <b>ARKUI_BLEND_APPLY_TYPE_FAST</b>. \n
1081      * \n
1082      * Format of the return value {@link ArkUI_AttributeItem}:\n
1083      * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
1084      * <b>ARKUI_BLEND_MODE_NONE</b>. \n
1085      * .value[1].i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
1086      * The default value is <b>ARKUI_BLEND_APPLY_TYPE_FAST</b>. \n
1087      *
1088      */
1089     NODE_BLEND_MODE,
1090     /**
1091      * @brief Sets the direction of the main axis.
1092      * This attribute can be set, reset, and obtained as required through APIs.
1093      *
1094      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1095      * .value[0].i32: direction of the main axis.\n
1096      * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
1097      * \n
1098      * Format of the return value {@link ArkUI_AttributeItem}:\n
1099      * .value[0].i32: direction of the main axis.\n
1100      * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
1101      *
1102      */
1103     NODE_DIRECTION,
1104     /**
1105      * @brief Defines the size constraints.
1106      * This attribute can be set, reset, and obtained as required through APIs.
1107      *
1108      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1109      * .value[0].f32: minimum width, in vp.\n
1110      * .value[1].f32: maximum width, in vp.\n
1111      * .value[2].f32: minimum height, in vp.\n
1112      * .value[3].f32: maximum height, in vp.\n
1113      * \n
1114      * Format of the return value {@link ArkUI_AttributeItem}:\n
1115      * .value[0].f32: minimum width, in vp.\n
1116      * .value[1].f32: maximum width, in vp.\n
1117      * .value[2].f32: minimum height, in vp.\n
1118      * .value[3].f32: maximum height, in vp.\n
1119      *
1120      */
1121     NODE_CONSTRAINT_SIZE,
1122     /**
1123      * @brief Defines the grayscale effect.
1124      * This attribute can be set, reset, and obtained as required through APIs.
1125      *
1126      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1127      * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.
1128      * For example, 0.5 indicates a 50% grayscale conversion ratio. \n
1129      * \n
1130      * Format of the return value {@link ArkUI_AttributeItem}:\n
1131      * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.\n
1132      *
1133      */
1134     NODE_GRAY_SCALE,
1135     /**
1136      * @brief Inverts the image.
1137      * This attribute can be set, reset, and obtained as required through APIs.
1138      *
1139      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1140      * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.
1141      * For example, 0.5 indicates a 50% image inversion ratio.\n
1142      * \n
1143      * Format of the return value {@link ArkUI_AttributeItem}:\n
1144      * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.\n
1145      *
1146      */
1147     NODE_INVERT,
1148     /**
1149      * @brief Defines the sepia conversion ratio.
1150      * This attribute can be set, reset, and obtained as required through APIs.
1151      *
1152      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1153      * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.
1154      * For example, 0.5 indicates that a 50% sepia conversion ratio.\n
1155      * \n
1156      * Format of the return value {@link ArkUI_AttributeItem}:\n
1157      * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.\n
1158      *
1159      */
1160     NODE_SEPIA,
1161     /**
1162      * @brief Defines the contrast attribute, which can be set, reset, and obtained as required through APIs.
1163      *
1164      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1165      * .value[0].f32: contrast. If the value is <b>1</b>, the source image is displayed.
1166      * A larger value indicates a higher contrast. Value range: [0, 10).\n
1167      * \n
1168      * Format of the return value {@link ArkUI_AttributeItem}:\n
1169      * .value[0].f32: contrast. Value range: [0, 10).\n
1170      *
1171      */
1172     NODE_CONTRAST,
1173     /**
1174      * @brief Defines the foreground color attribute, which can be set, reset, and obtained as required through APIs.
1175      *
1176      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
1177      * 1: .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
1178      * 2: .value[0].i32: color enum {@link ArkUI_ColoringStrategy}.\n
1179      * \n
1180      * Format of the return value {@link ArkUI_AttributeItem}:\n
1181      * .value[0].u32: color value, in 0xARGB format.\n
1182      *
1183      */
1184     NODE_FOREGROUND_COLOR,
1185 
1186     /**
1187      * @brief Defines the offset of the component's child relative to the component.
1188      * This attribute can be set, reset, and obtained as required through APIs.
1189      *
1190      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1191      * .value[0].f32 : offset along the x-axis, in vp. \n
1192      * .value[1].f32 : offset along the y-axis, in vp. \n
1193      * \n
1194      * Format of the return value {@link ArkUI_AttributeItem}:\n
1195      * .value[0].f32 : offset along the x-axis, in vp. \n
1196      * .value[1].f32 : offset along the y-axis, in vp. \n
1197      *
1198      */
1199     NODE_OFFSET,
1200     /**
1201      * @brief Sets the anchor for locating the component's child.
1202      * This attribute can be set, reset, and obtained as required through APIs.
1203      *
1204      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1205      * .value[0].f32: X coordinate of the anchor, in vp.\n
1206      * .value[1].f32: Y coordinate of the anchor, in vp.\n
1207      * \n
1208      * Format of the return value {@link ArkUI_AttributeItem}:\n
1209      * .value[0].f32: X coordinate of the anchor, in vp.\n
1210      * .value[1].f32: Y coordinate of the anchor, in vp.\n
1211      *
1212      */
1213     NODE_MARK_ANCHOR,
1214     /**
1215      * @brief Defines the position of the background image in the component, that is, the coordinates relative to
1216      * the upper left corner of the component. This attribute can be set, reset, and obtained as required through APIs.
1217      *
1218      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1219      * .value[0].f32: position along the x-axis, in px. \n
1220      * .value[1].f32: position along the y-axis, in px. \n
1221      * \n
1222      * Format of the return value {@link ArkUI_AttributeItem}:\n
1223      * .value[0].f32: position along the x-axis, in px. \n
1224      * .value[1].f32: position along the y-axis, in px. \n
1225      *
1226      */
1227     NODE_BACKGROUND_IMAGE_POSITION,
1228     /**
1229      * @brief Sets the alignment rules in the relative container.
1230      * This attribute can be set, reset, and obtained as required through APIs.
1231      *
1232      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1233      * .value[0]?.i32: ID of the component that functions as the anchor point for left alignment. \n
1234      * .value[1]?.i32: alignment mode relative to the anchor component for left alignment.
1235      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1236      * .value[2]?.i32: ID of the component that functions as the anchor point for center alignment. \n
1237      * .value[3]?.i32: alignment mode relative to the anchor component for center alignment.
1238      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1239      * .value[4]?.i32: ID of the component that functions as the anchor point for right alignment. \n
1240      * .value[5]?.i32: alignment mode relative to the anchor component for right alignment.
1241      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1242      * .value[6]?.i32: ID of the component that functions as the anchor point for top alignment. \n
1243      * .value[7]?.i32: alignment mode relative to the anchor component for top alignment.
1244      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1245      * .value[8]?.i32: ID of the component that functions as the anchor point for center alignment in the
1246      * vertical direction. \n
1247      * .value[9]?.i32: alignment mode relative to the anchor component forcenter alignment in the vertical direction.
1248      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1249      * .value[10]?.i32: ID of the component that functions as the anchor point for bottom alignment. \n
1250      * .value[11]?.i32: alignment mode relative to the anchor component for bottom alignment.
1251      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1252      * .value[12]?.f32: bias value in the horizontal direction. \n
1253      * .value[13]?.f32: bias value in the vertical direction. \n
1254      * \n
1255      * Format of the return value {@link ArkUI_AttributeItem}:\n
1256      * .value[0].i32: ID of the component that functions as the anchor point for left alignment. \n
1257      * .value[1].i32: alignment mode relative to the anchor component for left alignment.
1258      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1259      * .value[2].i32: ID of the component that functions as the anchor point for center alignment. \n
1260      * .value[3].i32: alignment mode relative to the anchor component for center alignment.
1261      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1262      * .value[4].i32: ID of the component that functions as the anchor point for right alignment. \n
1263      * .value[5].i32: alignment mode relative to the anchor component for right alignment.
1264      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1265      * .value[6].i32: ID of the component that functions as the anchor point for top alignment. \n
1266      * .value[7].i32: alignment mode relative to the anchor component for top alignment.
1267      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1268      * .value[8].i32: ID of the component that functions as the anchor point for center alignment in the
1269      * vertical direction. \n
1270      * .value[9].i32: alignment mode relative to the anchor component forcenter alignment in the vertical direction.
1271      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1272      * .value[10].i32: ID of the component that functions as the anchor point for bottom alignment. \n
1273      * .value[11].i32: alignment mode relative to the anchor component for bottom alignment.
1274      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1275      * .value[12].f32: bias value in the horizontal direction. \n
1276      * .value[13].f32: bias value in the vertical direction. \n
1277      *
1278      */
1279     NODE_ALIGN_RULES,
1280     /**
1281      * @brief Sets the alignment mode of the child components along the cross axis of the parent container.
1282      * This attribute can be set, reset, and obtained as required through APIs.
1283      *
1284      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1285      * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
1286      * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
1287      * \n
1288      * Format of the return value {@link ArkUI_AttributeItem}:\n
1289      * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
1290      * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
1291      *
1292      */
1293     NODE_ALIGN_SELF,
1294     /**
1295      * @brief Sets the percentage of the parent container's remaining space that is allocated to the component.
1296      * This attribute can be set, reset, and obtained as required through APIs.
1297      *
1298      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1299      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1300      * \n
1301      * Format of the return value {@link ArkUI_AttributeItem}:\n
1302      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1303      *
1304      */
1305     NODE_FLEX_GROW,
1306     /**
1307      * @brief Sets the percentage of the parent container's shrink size that is allocated to the component.
1308      * This attribute can be set, reset, and obtained as required through APIs.
1309      *
1310      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1311      * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
1312      * \n
1313      * Format of the return value {@link ArkUI_AttributeItem}:\n
1314      * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
1315      *
1316      */
1317     NODE_FLEX_SHRINK,
1318     /**
1319      * @brief Sets the base size of the component.
1320      * This attribute can be set, reset, and obtained as required through APIs.
1321      *
1322      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1323      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1324      * \n
1325      * Format of the return value {@link ArkUI_AttributeItem}:\n
1326      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1327      *
1328      */
1329     NODE_FLEX_BASIS,
1330     /**
1331      * @brief Sets the accessibility group. This attribute can be set, reset, and obtained as required through APIs.
1332      *
1333      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1334      * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
1335      * form an entire selectable component.
1336      * In this case, the accessibility service will no longer be available for the content of its child components.
1337      * The value is <b>1</b> or <b>0</b>.
1338      * \n
1339      * Format of the return value {@link ArkUI_AttributeItem}:\n
1340      * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
1341      * form an entire selectable component.
1342      * In this case, the accessibility service will no longer be available for the content of its child components.
1343      * The value is <b>1</b> or <b>0</b>.
1344      *
1345      */
1346     NODE_ACCESSIBILITY_GROUP,
1347 
1348     /**
1349      * @brief Sets the accessibility text. This attribute can be set, reset, and obtained as required through APIs.
1350      *
1351      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1352      * .string: accessibility text.
1353      * \n
1354      * Format of the return value {@link ArkUI_AttributeItem}:\n
1355      * .string: accessibility text.
1356      *
1357      */
1358     NODE_ACCESSIBILITY_TEXT,
1359 
1360     /**
1361      * @brief Sets the accessibility mode. This attribute can be set, reset, and obtained as required through APIs.
1362      *
1363      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1364      * .value[0].i32: accessibility mode. The parameter type is {@link ArkUI_AccessibilityMode}.
1365      * \n
1366      * Format of the return value {@link ArkUI_AttributeItem}:\n
1367      * .value[0].i32: accessibility mode. The parameter type is {@link ArkUI_AccessibilityMode}.
1368      *
1369      */
1370     NODE_ACCESSIBILITY_MODE,
1371 
1372     /**
1373      * @brief Sets the accessibility description.
1374      * This attribute can be set, reset, and obtained as required through APIs.
1375      *
1376      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1377      * .string: accessibility description.
1378      * \n
1379      * Format of the return value {@link ArkUI_AttributeItem}:\n
1380      * .string: accessibility description.
1381      *
1382      */
1383     NODE_ACCESSIBILITY_DESCRIPTION,
1384 
1385     /**
1386      * @brief Defines the focused state. This attribute can be set and obtained as required through APIs.
1387      *
1388      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1389      * .value[0].i32: The parameter type is 1 or 0.
1390      * \n
1391      * Format of the return value {@link ArkUI_AttributeItem}:\n
1392      * .value[0].i32: The parameter type is 1 or 0.
1393      *
1394      */
1395     NODE_FOCUS_STATUS,
1396     /**
1397      * @brief Defines the aspect ratio attribute, which can be set, reset, and obtained as required through APIs.
1398      *
1399      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1400      * .value[0].f32: aspect ratio of the component, in width/height format. \n
1401      * \n
1402      * Format of the return value {@link ArkUI_AttributeItem}:\n
1403      * .value[0].f32: aspect ratio of the component, in width/height format. \n
1404      *
1405      */
1406     NODE_ASPECT_RATIO,
1407     /**
1408      * @brief Defines the weight of the component within its row, column, or flex container for proportional
1409      * distribution of available space within the container.
1410      * This attribute can be set, reset, and obtained as required through APIs.
1411      *
1412      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1413      * .value[0].f32: weight of the component along the main axis. \n
1414      * \n
1415      * Format of the return value {@link ArkUI_AttributeItem}:\n
1416      * .value[0].f32: weight of the component along the main axis. \n
1417      *
1418      */
1419     NODE_LAYOUT_WEIGHT,
1420     /**
1421      * @brief Sets the display priority for the component in the row, column, or flex  (single-line) container.
1422      * This attribute can be set, reset, and obtained as required through APIs.
1423      *
1424      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1425      * .value[0].u32: display priority of the component in the container. \n
1426      * \n
1427      * Format of the return value {@link ArkUI_AttributeItem}:\n
1428      * .value[0].u32: display priority of the component in the container. \n
1429      *
1430      */
1431     NODE_DISPLAY_PRIORITY,
1432     /**
1433      * @brief Sets the thickness of an element's outline.
1434      *
1435      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1436      * .value[0].f32: thickness of the left outline. \n
1437      * .value[1].f32: thickness of the top outline. \n
1438      * .value[2].f32: thickness of the right outline. \n
1439      * .value[3].f32: thickness of the bottom outline. \n
1440      * \n
1441      * Format of the return value {@link ArkUI_AttributeItem}:\n
1442      * .value[0].f32: thickness of the left outline. \n
1443      * .value[1].f32: thickness of the top outline. \n
1444      * .value[2].f32: thickness of the right outline. \n
1445      * .value[3].f32: thickness of the bottom outline. \n
1446      *
1447      */
1448     NODE_OUTLINE_WIDTH,
1449     /**
1450      * @brief Defines the width attribute, which can be set, reset, and obtained as required through APIs.
1451      *
1452      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1453      * .value[0].f32: width, in percentage.\n
1454      * \n
1455      * Format of the return value {@link ArkUI_AttributeItem}:\n
1456      * .value[0].f32: width, in percentage.\n
1457      *
1458      */
1459     NODE_WIDTH_PERCENT,
1460     /**
1461      * @brief Defines the height attribute, which can be set, reset, and obtained as required through APIs.
1462      *
1463      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1464      * .value[0].f32: height, in percentage.\n
1465      * \n
1466      * Format of the return value {@link ArkUI_AttributeItem}:\n
1467      * .value[0].f32: height, in percentage.\n
1468      *
1469      */
1470     NODE_HEIGHT_PERCENT,
1471     /**
1472      * @brief Defines the padding attribute, which can be set, reset, and obtained as required through APIs.
1473      *
1474      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
1475      * 1: Specify the same padding for the four directions. \n
1476      * .value[0].f32: padding, in percentage.\n
1477      * 2: Specify different paddings for different directions. \n
1478      * .value[0].f32: top padding, in percentage.\n
1479      * .value[1].f32: right padding, in percentage.\n
1480      * .value[2].f32: bottom padding, in percentage.\n
1481      * .value[3].f32: left padding, in percentage.\n
1482      * \n
1483      * Format of the return value {@link ArkUI_AttributeItem}:\n
1484      * .value[0].f32: top padding, in percentage.\n
1485      * .value[1].f32: right padding, in percentage.\n
1486      * .value[2].f32: bottom padding, in percentage.\n
1487      * .value[3].f32: left padding, in percentage.\n
1488      *
1489      */
1490     NODE_PADDING_PERCENT,
1491     /**
1492      * @brief Defines the margin attribute, which can be set, reset, and obtained as required through APIs.
1493      *
1494      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
1495      * 1: Specify the same margin for the four directions. \n
1496      * .value[0].f32: margin, in percentage.\n
1497      * 2: Specify different margins for different directions. \n
1498      * .value[0].f32: top margin, in percentage.\n
1499      * .value[1].f32: right margin, in percentage.\n
1500      * .value[2].f32: bottom margin, in percentage.\n
1501      * .value[3].f32: left margin, in percentage.\n
1502      * \n
1503      * Format of the return value {@link ArkUI_AttributeItem}:\n
1504      * .value[0].f32: top margin, in percentage.\n
1505      * .value[1].f32: right margin, in percentage.\n
1506      * .value[2].f32: bottom margin, in percentage.\n
1507      * .value[3].f32: left margin, in percentage.\n
1508      *
1509      */
1510     NODE_MARGIN_PERCENT,
1511 
1512     /**
1513      * @brief The implicit shared element transition within the component supports attribute setting,
1514      * attribute reset, and attribute acquisition interfaces.
1515      *
1516      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
1517      * .value[0]?.i32: The parameter type is 1 or 0. 2 components that share element bindings,
1518      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
1519      * the default is false, and the original position will remain unchanged if not involved. \n
1520      * .string is used to set the binding relationship. Set the id to "" to
1521      * clear the binding relationship to avoid participating in sharing behavior. \n
1522      * The id can be changed and the binding relationship re-established.
1523      * The same ID can only be bound to two components and they are in/out roles of different types.
1524      * Multiple components cannot be bound to the same id. \n
1525      *\n
1526      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
1527      * .value[0].i32: The parameter type is 1 or 0. 2 components that share element bindings,
1528      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
1529      * the default is not false, if not involved, the original position will remain unchanged. \n
1530      * .string is used to set the binding relationship. Set the id to "" to
1531      * clear the binding relationship to avoid participating in sharing behavior. \n
1532      * The id can be changed and the binding relationship re-established.
1533      * The same ID can only be bound to two components and they are in/out roles of different types.
1534      * Multiple components cannot be bound to the same id. \n
1535      */
1536     NODE_GEOMETRY_TRANSITION,
1537 
1538     /**
1539      * @brief Specifies the parameters of the chain formed by this component as the chain head,
1540      * and supports attribute setting, attribute reset and attribute acquisition interfaces.
1541      *
1542      * Only takes effect when the parent container is RelativeContainer
1543      *
1544      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
1545      * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
1546      * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
1547      *\n
1548      * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
1549      * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
1550      */
1551     NODE_RELATIVE_LAYOUT_CHAIN_MODE,
1552 
1553     /**
1554      * @brief Set the component content filling method in the process of width and height animation,
1555      * support property setting, property reset, property acquisition interface.
1556      *
1557      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1558      * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
1559      * \n
1560      * Format of the return value {@link ArkUI_AttributeItem}:\n
1561      * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
1562      *
1563      */
1564     NODE_RENDER_FIT,
1565 
1566     /**
1567      * @brief External stroke color properties, support property setting,
1568      * property reset and property acquisition interface.
1569      *
1570      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1571      * 1: .value[0].u32: Set the border color of the four sides uniformly, using 0xargb, such as 0xFFFF11FF. \n
1572      * 2: .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
1573      * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
1574      * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
1575      * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
1576      * \n
1577      * Format of the return value {@link ArkUI_AttributeItem}:\n
1578      * .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
1579      * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
1580      * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
1581      * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
1582      *
1583      */
1584     NODE_OUTLINE_COLOR,
1585 
1586     /**
1587      * @brief Set the height and width dimensions, support property setting,
1588      * property reset and property acquisition interface.
1589      *
1590      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1591      * .value[0].f32: Width value, unit is vp;\n
1592      * .value[1].f32: Height value, unit is vp;\n
1593      * \n
1594      * Format of the return value {@link ArkUI_AttributeItem}:\n
1595      * .value[0].f32: Width value, unit is vp;\n
1596      * .value[1].f32: Height value, unit is vp;\n
1597      *
1598      */
1599     NODE_SIZE,
1600 
1601     /**
1602      * @brief Set whether the current component and child component are
1603      * rendered off the screen first and then fused with the parent control,
1604      * supporting property setting, property reset and property acquisition.
1605      *
1606      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1607      * .value[0].i32: The parameter type is 1 or 0.
1608      * \n
1609      * Format of the return value {@link ArkUI_AttributeItem}:\n
1610      * .value[0].i32: The parameter type is 1 or 0.
1611      *
1612      */
1613     NODE_RENDER_GROUP,
1614 
1615     /**
1616      * @brief Add color overlay effect to components, support property setting,
1617      * property reset and property acquisition interface.
1618      *
1619      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1620      * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
1621      * \n
1622      * Format of the return value {@link ArkUI_AttributeItem}:\n
1623      * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
1624      *
1625      */
1626     NODE_COLOR_BLEND,
1627 
1628     /**
1629      * @brief Provide content ambiguity capability for the current component,
1630      * support property setting, property reset, property acquisition interface.
1631      *
1632      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1633      * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
1634      * .value[1]?.i32 Represents the dark and light mode used by the content blur effect,\n
1635      * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
1636      * .value[2]?.i32 The color extraction mode used to represent the content blur effect takes\n
1637      * the {@link ArkUI_AdaptiveColor} enumeration value.\n
1638      * .value[3]?.f32: blur degree. The value range is [0.0, 1.0]. \n
1639      * .value[4]?.f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1640      * .value[5]?.f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1641      * \n
1642      * Format of the return value {@link ArkUI_AttributeItem}:\n
1643      * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
1644      * .value[1].i32 Represents the dark and light mode used by the content blur effect,\n
1645      * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
1646      * .value[2].i32 The color extraction mode used to represent the content blur effect takes\n
1647      * the {@link ArkUI_AdaptiveColor} enumeration value.\n
1648      * .value[3].f32: blur degree. The value range is [0.0, 1.0]. \n
1649      * .value[4].f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1650      * .value[5].f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1651      *
1652      */
1653     NODE_FOREGROUND_BLUR_STYLE,
1654 
1655     /**
1656      * @brief Defines the component size and position for layout.
1657      * This attribute can be set, reset, and obtained as required through APIs.
1658      *
1659      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1660      * .value[0].i32: X coordinate of the component, in px. \n
1661      * .value[1].i32: Y coordinate of the component, in px. \n
1662      * .value[2].i32: width of the component, in px. \n
1663      * .value[3].i32: height of the component, in px. \n
1664      * \n
1665      * Format of the return value {@link ArkUI_AttributeItem}:\n
1666      * .value[0].i32: X coordinate of the component, in px. \n
1667      * .value[1].i32: Y coordinate of the component, in px. \n
1668      * .value[2].i32: width of the component, in px. \n
1669      * .value[3].i32: height of the component, in px. \n
1670      *
1671      */
1672     NODE_LAYOUT_RECT,
1673 
1674     /**
1675      * @brief Whether the current component supports click-to-focus capability,
1676      * which can be set, reset, and obtained as required through APIs.
1677      *
1678      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1679      * .value[0].i32: The parameter type is 1 or 0.
1680      * \n
1681      * Format of the return value {@link ArkUI_AttributeItem}:\n
1682      * .value[0].i32: The parameter type is 1 or 0.
1683      *
1684      */
1685     NODE_FOCUS_ON_TOUCH,
1686 
1687     /**
1688      * @brief Defines the border width attribute, which can be set, reset, and obtained as required through APIs.
1689      *
1690      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1691      * 1: .value[0].f32: width of the four borders, in percentage. \n
1692      * 2: .value[0].f32: width of the top border, in percentage. \n
1693      * .value[1].f32: width of the right border, in percentage. \n
1694      * .value[2].f32: width of the bottom border, in percentage. \n
1695      * .value[3].f32: width of the left border, in percentage. \n
1696      * \n
1697      * Format of the return value {@link ArkUI_AttributeItem}:\n
1698      * .value[0].f32: width of the top border, in percentage. \n
1699      * .value[1].f32: width of the right border, in percentage. \n
1700      * .value[2].f32: width of the bottom border, in percentage. \n
1701      * .value[3].f32: width of the left border, in percentage. \n
1702      *
1703      */
1704     NODE_BORDER_WIDTH_PERCENT,
1705     /**
1706      * @brief Defines the border corner radius attribute, which can be set, reset, and obtained as required through APIs.
1707      *
1708      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1709      * 1: .value[0].f32: radius of the four corners, in percentage. \n
1710      * 2: .value[0].f32: radius of the upper left corner, in percentage. \n
1711      * .value[1].f32: radius of the upper right corner, in percentage. \n
1712      * .value[2].f32: radius of the lower left corner, in percentage. \n
1713      * .value[3].f32: radius of the lower right corner, in percentage. \n
1714      * \n
1715      * Format of the return value {@link ArkUI_AttributeItem}:\n
1716      * .value[0].f32: radius of the upper left corner, in percentage. \n
1717      * .value[1].f32: radius of the upper right corner, in percentage. \n
1718      * .value[2].f32: radius of the lower left corner, in percentage. \n
1719      * .value[3].f32: radius of the lower right corner, in percentage. \n
1720      *
1721      */
1722     NODE_BORDER_RADIUS_PERCENT,
1723 
1724     /**
1725      * @brief Accessible ID, which can be obtained as required through APIs.
1726      *
1727      * Format of the return value {@link ArkUI_AttributeItem}:\n
1728      * .value[0].i32:Accessible ID.\n
1729      *
1730      */
1731     NODE_ACCESSIBILITY_ID = 87,
1732 
1733     /**
1734      * @brief Define accessible actions, which 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].u32:accessible action types,and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
1738      * \n
1739      * Format of the return value {@link ArkUI_AttributeItem}:\n
1740      * .value[0].u32:accessible action types,and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
1741      *
1742      */
1743     NODE_ACCESSIBILITY_ACTIONS = 88,
1744 
1745     /**
1746      * @brief Define accessible role, which can be set, reset, and obtained as required through APIs.
1747      *
1748      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1749      * .value[0].u32:accessible role type,and uses the {@link ArkUI_NodeType} enumeration value.\n
1750      * \n
1751      * Format of the return value {@link ArkUI_AttributeItem}:\n
1752      * .value[0].u32:accessible role type,and uses the {@link ArkUI_NodeType} enumeration value.\n
1753      *
1754      */
1755     NODE_ACCESSIBILITY_ROLE = 89,
1756 
1757     /**
1758      * @brief Define accessible state, which can be set, reset, and obtained as required through APIs.
1759      *
1760      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1761      * .object:the parameter type is {@link ArkUI_AccessibilityState}.\n
1762      * \n
1763      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1764      * .object:the parameter type is {@link ArkUI_AccessibilityState}.\n
1765      *
1766      */
1767     NODE_ACCESSIBILITY_STATE = 90,
1768 
1769     /**
1770      * @brief Define accessible value, which can be set, reset, and obtained as required through APIs.
1771      *
1772      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1773      * .object:the parameter type is {@link ArkUI_AccessibilityValue}.\n
1774      * \n
1775      * Format of the return value {@link ArkUI_AttributeItem}:\n
1776      * .object:the parameter type is {@link ArkUI_AccessibilityValue}.\n
1777      *
1778      */
1779     NODE_ACCESSIBILITY_VALUE = 91,
1780 
1781     /**
1782      * @brief defines control components to extend their security zones,
1783      * supporting property setting, property reset, and property fetching.
1784      *
1785      * Attribute setting method {@link ArkUI_AttributeItem} Parameter format:\n
1786      * .value[0]? .u32: Set of extended security zone enumerated values {@link ArkUI_SafeAreaType},
1787      * For example, ARKUI_SAFE_AREA_TYPE_SYSTEM | ARKUI_SAFE_AREA_TYPE_CUTOUT; \n
1788      * .value[1]? .u32: set of directional enum values for extended security zones {@link ArkUI_SafeAreaEdge}; \n
1789      * For example: ARKUI_SAFE_AREA_EDGE_TOP | ARKUI_SAFE_AREA_EDGE_BOTTOM; \n
1790      * \n
1791      * Attribute fetch method return value {@link ArkUI_AttributeItem} format:\n
1792      *.value[0].u32: extends the security zone. \n. \n
1793      *.value[1].u32: indicates the direction to extend the security zone. \n. \n
1794      *
1795      */
1796     NODE_EXPAND_SAFE_AREA = 92,
1797     /**
1798      * @brief Defines the visible area ratio (visible area/total area of the component) threshold for invoking the
1799      * visible area change event of the component.
1800      *
1801      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1802      * .value[...].f32: threshold array. The value range is 0 to 1.
1803      * \n
1804      * Format of the return value {@link ArkUI_AttributeItem}:\n
1805      * .value[...].f32: threshold array. \n
1806      *
1807      */
1808     NODE_VISIBLE_AREA_CHANGE_RATIO = 93,
1809 
1810     /**
1811      * @brief Sets the transition effect when the component is inserted or deleted.
1812      * This attribute can be set, and obtained as required through APIs.
1813      *
1814      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1815      * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
1816      * \n
1817      * Format of the return value {@link ArkUI_AttributeItem}:\n
1818      * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
1819      *
1820      */
1821     NODE_TRANSITION = 94,
1822 
1823     /**
1824      * @brief Defines the component ID.
1825      * This attribute can be obtained through APIs.
1826      *
1827      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:\n
1828      * .value[0].i32: component ID. \n
1829      *
1830      */
1831     NODE_UNIQUE_ID = 95,
1832 
1833     /**
1834      * @brief Set the current component system focus box style.
1835      *
1836      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1837      * .value[0].f32: The distance between the focus box and the edge of the component. \n
1838      * Positive numbers represent the outer side, negative numbers represent the inner side. \n
1839      * Percentage is not supported. \n
1840      * .value[1].f32: Focus box width. Negative numbers and percentages are not supported. \n
1841      * .value[2].u32: Focus box color. \n
1842      * \n
1843      *
1844      */
1845     NODE_FOCUS_BOX = 96,
1846 
1847     /**
1848      * @brief Defines the moving distance limit for the component-bound tap gesture.
1849      * This attribute can be set as required through APIs.
1850      *
1851      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1852      * .value[0].f32: allowed moving distance of a finger, in vp. \n
1853      *
1854      */
1855     NODE_CLICK_DISTANCE = 97,
1856 
1857     /**
1858      * @brief Defines the moving distance limit for the component-bound tap gesture.
1859      * This attribute can be set as required through APIs.
1860      *
1861      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1862      * .value[0].f32: allowed moving distance of a finger, in vp. \n
1863      *
1864      */
1865     NODE_TAB_STOP = 98,
1866 
1867     /**
1868      * @brief Defines the backdrop blur attribute, which can be set, reset, and obtained as required through APIs.
1869      *
1870      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1871      * .value[0].f32:backdrop blur radius, in px. The value range is [0, +∞).\n
1872      * .value[1]?.f32:grayscale blur settings that control the brightness of the black color.\n
1873      * The value range is [0, 127].\n
1874      * .value[2]?.f32:grayscale blur settings that control the darkness of the white color.\n
1875      * The value range is [0, 127].\n
1876      * \n
1877      * Format of the return value {@link ArkUI_AttributeItem}:\n
1878      * .value[0].f32:backdrop blur radius, in px. The value range is [0, +∞).\n
1879      * .value[1].f32:grayscale blur settings that control the brightness of the black color.\n
1880      * The value range is [0, 127].\n
1881      * .value[2].f32:grayscale blur settings that control the darkness of the white color.\n
1882      * The value range is [0, 127].\n
1883      *
1884      * @since 15
1885      */
1886     NODE_BACKDROP_BLUR = 99,
1887 
1888     /*
1889      * @brief Defines the background image resizable attribute, which can be set, reset,
1890      * and obtained as required through APIs.
1891      *
1892      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1893      * .value[0].f32:width of the left edge. The unit is vp. \n
1894      * .value[1].f32:width of the top edge. The unit is vp. \n
1895      * .value[2].f32:width of the right edge. The unit is vp. \n
1896      * .value[3].f32:width of the bottom edge. The unit is vp. \n
1897      * \n
1898      * Format of the return value {@link ArkUI_AttributeItem}:\n
1899      * .value[0].f32:width of the left edge. The unit is vp. \n
1900      * .value[1].f32:width of the top edge. The unit is vp. \n
1901      * .value[2].f32:width of the right edge. The unit is vp. \n
1902      * .value[3].f32:width of the bottom edge. The unit is vp. \n
1903      *
1904      * @since 18
1905      */
1906     NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE = 100,
1907 
1908     /**
1909      * @brief Sets the next focus node.
1910      *
1911      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
1912      * .value[0].i32: focus movement direction, as defined in {@link ArkUI_FocusMove}.
1913      * .object: next focus node. The parameter type is {@link ArkUI_NodeHandle}.\n
1914      * \n
1915      *
1916      */
1917     NODE_NEXT_FOCUS = 101,
1918 
1919     /**
1920      * @brief Sets the parameters for visible area change events.
1921      *
1922      * @note The visible area change callback is not a real-time callback. The actual callback interval may differ from
1923      * the expected interval due to system load and other factors.
1924      * The interval between two visible area change callbacks will not be less than the expected update interval. If the
1925      * provided expected interval is too short, the actual callback interval will be determined by the system load.
1926      * By default, the interval threshold of the visible area change callback includes 0. This means that,
1927      * if the provided threshold is [0.5], the effective threshold will be [0.0, 0.5].
1928      *
1929      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1930      * .object: parameters for visible area change events.
1931      * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
1932      * \n
1933      * Format of the return value {@link ArkUI_AttributeItem}:\n
1934      * .object: parameters for visible area change events.
1935      * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
1936      *
1937      */
1938     NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO = 102,
1939 
1940     /**
1941      * @brief Defines the text content attribute, which can be set, reset, and obtained as required through APIs.
1942      *
1943      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1944      * .string: text content.\n
1945      * \n
1946      * Format of the return value {@link ArkUI_AttributeItem}:\n
1947      * .string: text content.\n
1948      */
1949     NODE_TEXT_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
1950     /**
1951      * @brief Defines the font color attribute, which can be set, reset, and obtained as required through APIs.
1952      *
1953      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1954      * .value[0].u32: font color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
1955      * \n
1956      * Format of the return value {@link ArkUI_AttributeItem}:\n
1957      * .value[0].u32: font color value, in 0xARGB format.\n
1958      *
1959      */
1960     NODE_FONT_COLOR,
1961     /**
1962      * @brief Defines the font size attribute, which can be set, reset, and obtained as required through APIs.
1963      *
1964      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1965      * .value[0].f32: font size, in fp.\n
1966      * \n
1967      * Format of the return value {@link ArkUI_AttributeItem}:\n
1968      * .value[0].f32: font size, in fp.\n
1969      *
1970      */
1971     NODE_FONT_SIZE,
1972     /**
1973      * @brief Defines the font style attribute, which can be set, reset, and obtained as required through APIs.
1974      *
1975      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1976      * .value[0].i32: font style {@link ArkUI_FontStyle}. The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
1977      * \n
1978      * Format of the return value {@link ArkUI_AttributeItem}:\n
1979      * .value[0].i32: font style {@link ArkUI_FontStyle}.\n
1980      *
1981      */
1982     NODE_FONT_STYLE,
1983     /**
1984      * @brief Defines the font weight attribute, which can be set, reset, and obtained as required through APIs.
1985      *
1986      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1987      * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
1988      * \n
1989      * Format of the return value {@link ArkUI_AttributeItem}:\n
1990      * .value[0].i32: font weight {@link ArkUI_FontWeight}.\n
1991      *
1992      */
1993     NODE_FONT_WEIGHT,
1994     /**
1995      * @brief Defines the text line height attribute, which can be set, reset, and obtained as required through APIs.
1996      *
1997      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1998      * .value[0].f32: line height, in fp.\n
1999      * \n
2000      * Format of the return value {@link ArkUI_AttributeItem}:\n
2001      * .value[0].f32: line height, in fp.\n
2002      *
2003      */
2004     NODE_TEXT_LINE_HEIGHT,
2005     /**
2006      * @brief Defines the text decoration style and color.
2007      * This attribute can be set, reset, and obtained as required through APIs.
2008      *
2009      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2010      * .value[0].i32: text decoration type {@link ArkUI_TextDecorationType}.
2011      * The default value is <b>ARKUI_TEXT_DECORATION_TYPE_NONE</b>.\n
2012      * .value[1]?.u32: text decoration color, in 0xARGB format. For example, 0xFFFF0000 indicates red. Optional.\n
2013      * .value[2]?.i32: text decoration style {@link ArkUI_TextDecorationStyle}. \n
2014      * \n
2015      * Format of the return value {@link ArkUI_AttributeItem}:\n
2016      * .value[0].i32: text decoration type {@link ArkUI_TextDecorationType}.\n
2017      * .value[1].u32: text decoration color, in 0xARGB format. \n
2018      * .value[2].i32: text decoration style {@link ArkUI_TextDecorationStyle}. \n
2019      *
2020      */
2021     NODE_TEXT_DECORATION,
2022     /**
2023      * @brief Defines the text case attribute, which can be set, reset, and obtained as required through APIs.
2024      *
2025      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2026      * .value[0].i32: text case.\n
2027      * \n
2028      * Format of the return value {@link ArkUI_AttributeItem}:\n
2029      * .value[0].i32: text case.\n
2030      *
2031      */
2032     NODE_TEXT_CASE,
2033     /**
2034      * @brief Defines the letter spacing attribute, which can be set, reset, and obtained as required through APIs.
2035      *
2036      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2037      * .value[0].f32: letter spacing, in fp.\n
2038      * \n
2039      * Format of the return value {@link ArkUI_AttributeItem}:\n
2040      * .value[0].f32: letter spacing, in fp.\n
2041      *
2042      */
2043     NODE_TEXT_LETTER_SPACING,
2044     /**
2045      * @brief Sets the maximum number of lines in the text.
2046      * This attribute can be set, reset, and obtained as required through APIs.
2047      *
2048      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2049      * .value[0].i32: maximum number of lines in the text.\n
2050      * \n
2051      * Format of the return value {@link ArkUI_AttributeItem}:\n
2052      * .value[0].i32: maximum number of lines in the text.\n
2053      *
2054      */
2055     NODE_TEXT_MAX_LINES,
2056     /**
2057      * @brief Horizontal alignment mode of the text.
2058      * This attribute can be set, reset, and obtained as required through APIs.
2059      *
2060      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2061      * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_TextAlignment}. \n
2062      * \n
2063      * Format of the return value {@link ArkUI_AttributeItem}:\n
2064      * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_TextAlignment}. \n
2065      *
2066      */
2067     NODE_TEXT_ALIGN,
2068     /**
2069      * @brief Defines the text overflow attribute, which can be set, reset, and obtained as required through APIs.
2070      *
2071      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2072      * .value[0].i32: display mode when the text is too long {@link ArkUI_TextOverflow}. \n
2073      * \n
2074      * Format of the return value {@link ArkUI_AttributeItem}:\n
2075      * .value[0].i32: display mode when the text is too long {@link ArkUI_TextOverflow}. \n
2076      *
2077      */
2078     NODE_TEXT_OVERFLOW,
2079     /**
2080      * @brief Defines the font family attribute, which can be set, reset, and obtained as required through APIs.
2081      *
2082      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2083      * .string: fonts, separated by commas (,).
2084      * \n
2085      * Format of the return value {@link ArkUI_AttributeItem}:\n
2086      * .string: fonts, separated by commas (,).
2087      *
2088      */
2089     NODE_FONT_FAMILY,
2090     /**
2091      * @brief Defines the copy option attribute, which can be set, reset, and obtained as required through APIs.
2092      *
2093      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2094      * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The default value is <b>ARKUI_COPY_OPTIONS_NONE</b>.\n
2095      * \n
2096      * Format of the return value {@link ArkUI_AttributeItem}:\n
2097      * .value[0].i32: copy option {@link ArkUI_CopyOptions. \n
2098      *
2099      */
2100     NODE_TEXT_COPY_OPTION,
2101     /**
2102      * @brief Defines the text baseline offset attribute
2103      * This attribute can be set, reset, and obtained as required through APIs.
2104      *
2105      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2106      * .value[0].f32: baseline offset, in fp.\n
2107      * \n
2108      * Format of the return value {@link ArkUI_AttributeItem}:\n
2109      * .value[0].f32: baseline offset, in fp. \n
2110      *
2111      */
2112     NODE_TEXT_BASELINE_OFFSET,
2113     /**
2114      * @brief Defines the text shadow attribute, which 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      * .value[0].f32: blur radius of the shadow, in vp.\n
2118      * .value[1].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
2119      * .value[2].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
2120      * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
2121      * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
2122      * \n
2123      * Format of the return value {@link ArkUI_AttributeItem}:\n
2124      * .value[0].f32: blur radius of the shadow, in vp.\n
2125      * .value[1].i32: shadow type {@link ArkUI_ShadowType}.\n
2126      * .value[2].u32: shadow color, in 0xARGB format.\n
2127      * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
2128      * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
2129      *
2130      */
2131     NODE_TEXT_TEXT_SHADOW,
2132     /**
2133      * @brief Defines the minimum font size attribute, which can be set, reset, and obtained as required through APIs.
2134      *
2135      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2136      * .value[0].f32: minimum font size, in fp.
2137      * \n
2138      * Format of the return value {@link ArkUI_AttributeItem}:\n
2139      * .value[0].f32: minimum font size, in fp.
2140      *
2141      */
2142     NODE_TEXT_MIN_FONT_SIZE,
2143 
2144     /**
2145      * @brief Defines the maximum font size attribute, which can be set, reset, and obtained as required through APIs.
2146      *
2147      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2148      * .value[0].f32: maximum font size, in fp.
2149      * \n
2150      * Format of the return value {@link ArkUI_AttributeItem}:\n
2151      * .value[0].f32: maximum font size, in fp.
2152      *
2153      */
2154     NODE_TEXT_MAX_FONT_SIZE,
2155 
2156     /**
2157      * @brief Defines the text style attribute, which can be set, reset, and obtained as required through APIs.
2158      *
2159      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2160      * .string?: font family. Optional. Use commas (,) to separate multiple fonts. \n
2161      * .value[0].f32: font size, in fp. \n
2162      * .value[1]?.i32: font weight. Optional. The parameter type is {@link ArkUI_FontWeight}.
2163      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
2164      * .value[2]?.i32: font style. Optional. The parameter type is {@link ArkUI_FontStyle}.
2165      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
2166      * \n
2167      * Format of the return value {@link ArkUI_AttributeItem}:\n
2168      * .string: font family. Use commas (,) to separate multiple fonts. \n
2169      * .value[0].f32: font size, in fp. \n
2170      * .value[1].i32: font weight. The parameter type is {@link ArkUI_FontWeight}.
2171      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
2172      * .value[2].i32: font style. The parameter type is {@link ArkUI_FontStyle}.
2173      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
2174      *
2175      */
2176     NODE_TEXT_FONT,
2177 
2178     /**
2179      * @brief Defines how the adaptive height is determined for the text.
2180      * This attribute can be set, reset, and obtained as required through APIs.
2181      *
2182      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2183      * .value[0].i32: how the adaptive height is determined for the text.
2184      * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}.
2185      * \n
2186      * Format of the return value {@link ArkUI_AttributeItem}:\n
2187      * .value[0].i32: how the adaptive height is determined for the text.
2188      * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}
2189      *
2190      */
2191     NODE_TEXT_HEIGHT_ADAPTIVE_POLICY,
2192     /**
2193      * @brief Defines the indentation of the first line.
2194      * This attribute can be set, reset, and obtained as required through APIs.
2195      *
2196      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2197      * .value[0].f32: indentation of the first line. \n
2198      * \n
2199      * Format of the return value {@link ArkUI_AttributeItem}:\n
2200      * .value[0].f32: indentation of the first line. \n
2201      *
2202      */
2203     NODE_TEXT_INDENT,
2204     /**
2205      * @brief Defines the line break rule. This attribute can be set, reset, and obtained as required through APIs.
2206      *
2207      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2208      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
2209      * \n
2210      * Format of the return value {@link ArkUI_AttributeItem}:\n
2211      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
2212      *
2213      */
2214     NODE_TEXT_WORD_BREAK,
2215     /**
2216      * @brief Defines the ellipsis position. This attribute can be set, reset, and obtained as required through APIs.
2217      *
2218      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2219      * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
2220      * \n
2221      * Format of the return value {@link ArkUI_AttributeItem}:\n
2222      * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
2223      *
2224      */
2225     NODE_TEXT_ELLIPSIS_MODE,
2226     /**
2227      * @brief Defines the text line spacing attribute, which can be set, reset, and obtained as required through APIs.
2228      *
2229      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2230      * .value[0].f32: line spacing, in fp.\n
2231      * \n
2232      * Format of the return value {@link ArkUI_AttributeItem}:\n
2233      * .value[0].f32: line spacing, in fp.\n
2234      *
2235      */
2236     NODE_TEXT_LINE_SPACING,
2237     /**
2238      * @brief  Set the text feature effect and the NODE_FONT_FEATURE attribute,
2239      * NODE_FONT_FEATURE is the advanced typesetting capability of OpenType
2240      * Features such as ligatures and equal-width digits are generally used in customized fonts. \n
2241      * The capabilities need to be supported by the fonts, \n
2242      * Interfaces for setting, resetting, and obtaining attributes are supported. \n
2243      * Attribute setting method parameter {@Link ArkUI_AttributeItem} format:\n
2244      * .string: complies with the text feature format. The format is normal | \n
2245      * is in the format of [ | on | off],\n.
2246      * There can be multiple values separated by commas (,). \n
2247      * For example, the input format of a number with the same width is ss01 on. \n
2248      * \n
2249      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
2250      * .string indicates the content of the text feature. Multiple text features are separated by commas (,). \n
2251      */
2252     NODE_TEXT_FONT_FEATURE,
2253 
2254     /**
2255      * @brief Setting Enable Text Recognition.
2256      *
2257      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2258      * .value[0].i32:Enable text recognition, default value false.\n
2259      * \n
2260      * Format of the return value {@link ArkUI_AttributeItem}:\n
2261      * .value[0].i32:Enable Text Recognition\n
2262      *
2263      */
2264     NODE_TEXT_ENABLE_DATA_DETECTOR,
2265     /**
2266      * @brief Set the text recognition configuration.
2267      *
2268      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2269      * .value[0...].i32: Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}.\n
2270      * \n
2271      * Format of the return value {@link ArkUI_AttributeItem}:\n
2272      * .value[0...].i32:Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}.\n
2273      *
2274      */
2275     NODE_TEXT_ENABLE_DATA_DETECTOR_CONFIG,
2276     /**
2277      * @brief Defines the background color of the selected text.
2278      * This attribute can be set, reset, and obtained as required through APIs.
2279      *
2280      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2281      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2282      * \n
2283      * Format of the return value {@link ArkUI_AttributeItem}:\n
2284      * .value[0].u32: color value, in 0xARGB format. \n
2285      *
2286      */
2287     NODE_TEXT_SELECTED_BACKGROUND_COLOR,
2288 
2289     /**
2290     * @brief The text component uses a formatted string object to set text content properties,
2291     * and supports property setting, property reset, and property acquisition interfaces.
2292     *
2293     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2294     * .object indicates ArkUI_StyledString formatted string data. The parameter type is {@link ArkUI_StyledString}. \n
2295     * \n
2296     * Format of the return value {@link ArkUI_AttributeItem}:\n
2297     * .object indicates ArkUI_StyledString formatted string data. The parameter type is {@link ArkUI_StyledString}. \n
2298     */
2299     NODE_TEXT_CONTENT_WITH_STYLED_STRING,
2300 
2301     /**
2302      * @brief Sets whether to center text vertically in the text component.
2303      *
2304      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2305      * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
2306      * \n
2307      * Format of the return value {@link ArkUI_AttributeItem}:\n
2308      * .value[0].i32: whether to center text vertically. \n
2309      *
2310      */
2311     NODE_TEXT_HALF_LEADING = 1029,
2312 
2313     /**
2314      * @brief Defines the font weight attribute, which can be set, reset, and obtained as required through APIs.
2315      * The font weight specified by this API is not affected by any changes in the system font weight settings.
2316      *
2317      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2318      * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
2319      * \n
2320      * Format of the return value {@link ArkUI_AttributeItem}:\n
2321      * .value[0].i32: font weight {@link ArkUI_FontWeight}.\n
2322      *
2323      * @since 15
2324      */
2325     NODE_IMMUTABLE_FONT_WEIGHT = 1030,
2326 
2327     /**
2328      * @brief Defines the text content attribute, which can be set, reset, and obtained as required through APIs.
2329      *
2330      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2331      * .string: content of the text span. \n
2332      * \n
2333      * Format of the return value {@link ArkUI_AttributeItem}:\n
2334      * .string: content of the text span. \n
2335      *
2336      */
2337     NODE_SPAN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SPAN,
2338     /**
2339      * @brief Defines the text background style.
2340      * This attribute can be set, reset, and obtained as required through APIs.
2341      *
2342      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2343      * .value[0].u32: color of the text background, in 0xARGB format, for example, <b>0xFFFF0000</b> indicating red. \n
2344      * The second parameter indicates the rounded corners of the text background. Two setting modes are available:\n
2345      * 1: .value[1].f32: radius of the four corners, in vp. \n
2346      * 2: .value[1].f32: radius of the upper left corner, in vp. \n
2347      * .value[2].f32: radius of the upper right corner, in vp. \n
2348      * .value[3].f32: radius of the lower left corner, in vp. \n
2349      * .value[4].f32: radius of the lower right corner, in vp. \n
2350      * \n
2351      * Format of the return value {@link ArkUI_AttributeItem}:\n
2352      * .value[0].u32: color of the text background, in 0xARGB format. \n
2353      * .value[1].f32: radius of the upper left corner, in vp. \n
2354      * .value[2].f32: radius of the upper right corner, in vp. \n
2355      * .value[3].f32: radius of the lower left corner, in vp. \n
2356      * .value[4].f32: radius of the lower right corner, in vp. \n
2357      *
2358      */
2359     NODE_SPAN_TEXT_BACKGROUND_STYLE,
2360     /**
2361      * @brief Defines the text baseline offset attribute
2362      * This attribute can be set, reset, and obtained as required through APIs.
2363      *
2364      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2365      * .value[0].f32: baseline offset, in fp.\n
2366      * \n
2367      * Format of the return value {@link ArkUI_AttributeItem}:\n
2368      * .value[0].f32: baseline offset, in fp. \n
2369      *
2370      */
2371     NODE_SPAN_BASELINE_OFFSET,
2372     /**
2373      * @brief Defines the image source of the image span.
2374      * This attribute can be set, reset, and obtained as required through APIs.
2375      *
2376      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2377      * .string: image address of the image span.\n
2378      * \n
2379      * Format of the return value {@link ArkUI_AttributeItem}:\n
2380      * .string: image address of the image span.\n
2381      *
2382      */
2383     NODE_IMAGE_SPAN_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_SPAN,
2384     /**
2385      * @brief Defines the alignment mode of the image with the text.
2386      * This attribute can be set, reset, and obtained as required through APIs.
2387      *
2388      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2389      * .value[0].i32: alignment mode of the image with the text.
2390      * The value is an enum of {@link ArkUI_ImageSpanAlignment}. \n
2391      * \n
2392      * Format of the return value {@link ArkUI_AttributeItem}:\n
2393      * .value[0].i32: alignment mode of the image with the text.
2394      * The value is an enum of {@link ArkUI_ImageSpanAlignment}. \n
2395      *
2396      */
2397     NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT,
2398     /**
2399      * @brief Defines the placeholder image source.
2400      * This attribute can be set, reset, and obtained as required through APIs.
2401      *
2402      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2403      * .string: placeholder image source. \n
2404      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
2405      * \n
2406      * Format of the return value {@link ArkUI_AttributeItem}:\n
2407      * .string: placeholder image source. \n
2408      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
2409      *
2410      */
2411     NODE_IMAGE_SPAN_ALT,
2412     /**
2413      * @brief Defines the image span baseline offset attribute
2414      * This attribute can be set, reset, and obtained as required through APIs.
2415      *
2416      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2417      * .value[0].f32: baseline offset, in fp.\n
2418      * \n
2419      * Format of the return value {@link ArkUI_AttributeItem}:\n
2420      * .value[0].f32: baseline offset, in fp. \n
2421      *
2422      */
2423     NODE_IMAGE_SPAN_BASELINE_OFFSET = 3003,
2424     /**
2425      * @brief Defines the image source of the <Image> component.
2426      * This attribute can be set, reset, and obtained as required through APIs.
2427      *
2428      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2429      * .string: image source.\n
2430      * \n
2431      * Format of the return value {@link ArkUI_AttributeItem}:\n
2432      * .string: image source.\n
2433      *
2434      */
2435     NODE_IMAGE_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
2436     /**
2437      * @brief Defines how the image is resized to fit its container.
2438      * This attribute can be set, reset, and obtained as required through APIs.
2439      *
2440      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2441      * .value[0].i32: how the image is resized to fit its container. The value is an enum of {@link ArkUI_ObjectFit}. \n
2442      * \n
2443      * Format of the return value {@link ArkUI_AttributeItem}:\n
2444      * .value[0].i32: how the image is resized to fit its container. The value is an enum of {@link ArkUI_ObjectFit}. \n
2445      *
2446      */
2447     NODE_IMAGE_OBJECT_FIT,
2448     /**
2449      * @brief Defines the interpolation effect of the image.
2450      * This attribute can be set, reset, and obtained as required through APIs.
2451      *
2452      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2453      * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
2454      * \n
2455      * Format of the return value {@link ArkUI_AttributeItem}:\n
2456      * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
2457      *
2458      */
2459     NODE_IMAGE_INTERPOLATION,
2460     /**
2461      * @brief Defines how the image is repeated.
2462      * This attribute can be set, reset, and obtained as required through APIs.
2463      *
2464      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2465      * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
2466      * \n
2467      * Format of the return value {@link ArkUI_AttributeItem}:\n
2468      * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
2469      *
2470      */
2471     NODE_IMAGE_OBJECT_REPEAT,
2472     /**
2473      * @brief Defines the color filter of the image.
2474      * This attribute can be set, reset, and obtained as required through APIs.
2475      *
2476      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2477      * .value[0].f32 to .value[19].f32: filter matrix array. \n
2478      * .size: 5 x 4 filter array size. \n
2479      * .object: the pointer to OH_Drawing_ColorFilter. Either .value or .object is set. \n
2480      * \n
2481      * Format of the return value {@link ArkUI_AttributeItem}:\n
2482      * .value[0].f32 to .value[19].f32: filter matrix array. \n
2483      * .size: 5 x 4 filter array size. \n
2484      * .object: the pointer to OH_Drawing_ColorFilter. \n
2485      *
2486      */
2487     NODE_IMAGE_COLOR_FILTER,
2488     /**
2489      * @brief Defines the auto resize attribute, which can be set, reset, and obtained as required through APIs.
2490      *
2491      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2492      * .value[0].i32 : whether to resize the image source. \n
2493      * \n
2494      * Format of the return value {@link ArkUI_AttributeItem}:\n
2495      * .value[0].i32 : whether to resize the image source. \n
2496      *
2497      */
2498     NODE_IMAGE_AUTO_RESIZE,
2499     /**
2500      * @brief Defines the placeholder image source.
2501      * This attribute can be set, reset, and obtained as required through APIs.
2502      *
2503      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2504      * .string: placeholder image source. \n
2505      * \n
2506      * Format of the return value {@link ArkUI_AttributeItem}:\n
2507      * .string: placeholder image source. \n
2508      *
2509      */
2510     NODE_IMAGE_ALT,
2511     /**
2512      * @brief Defines whether the image is draggable.
2513      * This attribute can be set, reset, and obtained as required through APIs.
2514      *
2515      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2516      * .value[0].i32: whether the image is draggable. The value <b>true</b> means that the image is draggable. \n
2517      * \n
2518      * Format of the return value {@link ArkUI_AttributeItem}:\n
2519      * .value[0].i32: whether the image is draggable. \n
2520      *
2521      */
2522     NODE_IMAGE_DRAGGABLE,
2523     /**
2524      * @brief Defines the image rendering mode. This attribute can be set, reset, and obtained as required through APIs.
2525      *
2526      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2527      * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
2528      * \n
2529      * Format of the return value {@link ArkUI_AttributeItem}:\n
2530      * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
2531      *
2532      */
2533     NODE_IMAGE_RENDER_MODE,
2534     /**
2535      * @brief Defines whether the image display size follows the image source size.
2536      * This attribute can be set, reset, and obtained as required through APIs.
2537      *
2538      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2539      * .value[0].i32: wheter to follow, true means to follow.\n
2540      * \n
2541      * Format of the return value {@link ArkUI_AttributeItem}:\n
2542      * .value[0].i32: wheter to follow, true means to follow.\n
2543      *
2544      */
2545     NODE_IMAGE_FIT_ORIGINAL_SIZE,
2546     /**
2547      * @brief Defines the fill color of the swiper.
2548      * This attribute can be set, reset, and obtained as required through APIs.
2549      *
2550      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2551      * .value[0].u32: fill color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2552      * \n
2553      * Format of the return value {@link ArkUI_AttributeItem}:\n
2554      * .value[0].u32: fill color, in 0xARGB format. \n
2555      *
2556      */
2557     NODE_IMAGE_FILL_COLOR,
2558     /**
2559      * @brief Sets the resizable image options.
2560      *
2561      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2562      * .value[0].f32: width of the left edge. The unit is vp. \n
2563      * .value[1].f32: width of the top edge. The unit is vp. \n
2564      * .value[2].f32: width of the right edge. The unit is vp. \n
2565      * .value[3].f32: width of the bottom edge. The unit is vp. \n
2566      * \n
2567      * Format of the return value {@link ArkUI_AttributeItem}:\n
2568      * .value[0].f32: width of the left edge. The unit is vp. \n
2569      * .value[1].f32: width of the top edge. The unit is vp. \n
2570      * .value[2].f32: width of the right edge. The unit is vp. \n
2571      * .value[3].f32: width of the bottom edge. The unit is vp. \n
2572      *
2573      */
2574     NODE_IMAGE_RESIZABLE,
2575     /**
2576      * @brief Defines the color of the component when it is selected.
2577      * This attribute can be set, reset, and obtained as required through APIs.
2578      *
2579      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2580      * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2581      * \n
2582      * Format of the return value {@link ArkUI_AttributeItem}:\n
2583      * .value[0].u32: background color, in 0xARGB format. \n
2584      *
2585      */
2586     NODE_TOGGLE_SELECTED_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
2587     /**
2588      * @brief Defines the color of the circular slider for the component of the switch type.
2589      * This attribute can be set, reset, and obtained as required through APIs.
2590      *
2591      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2592      * .value[0].u32: color of the circular slider, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2593      * \n
2594      * Format of the return value {@link ArkUI_AttributeItem}:\n
2595      * .value[0].u32: color of the circular slider, in 0xARGB format. \n
2596      *
2597      */
2598     NODE_TOGGLE_SWITCH_POINT_COLOR,
2599     /**
2600      * @brief Defines the toggle switch value. This attribute can be set, reset, and obtained as required through APIs.
2601      *
2602      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2603      * .value[0].i32: whether to enable the toggle. The value <b>true</b> means to enable the toggle. \n
2604      * \n
2605      * Format of the return value {@link ArkUI_AttributeItem}:\n
2606      * .value[0].i32: whether to enable the toggle. \n
2607      *
2608      */
2609     NODE_TOGGLE_VALUE,
2610     /**
2611      * @brief Defines the color of the component when it is deselected.
2612      * This attribute can be set, reset, and obtained as required through APIs.
2613      *
2614      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2615      * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2616      * \n
2617      * Format of the return value {@link ArkUI_AttributeItem}:\n
2618      * .value[0].u32: background color, in 0xARGB format. \n
2619      *
2620      */
2621     NODE_TOGGLE_UNSELECTED_COLOR,
2622 
2623     /**
2624      * @brief Defines the foreground color of the loading progress bar.
2625      * This attribute can be set, reset, and obtained as required through APIs.
2626      *
2627      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2628      * .value[0].u32: foreground color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2629      * \n
2630      * Format of the return value {@link ArkUI_AttributeItem}:\n
2631      * .value[0].u32: foreground color, in 0xARGB format. \n
2632      *
2633      */
2634     NODE_LOADING_PROGRESS_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LOADING_PROGRESS,
2635     /**
2636      * @brief Defines whether to show the loading animation for the <LoadingProgress> component.
2637      * This attribute can be set, reset, and obtained as required through APIs.
2638      *
2639      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2640      * .value[0].i32: whether to show the loading animation.
2641      * The value <b>true</b> means to show the loading animation, and <b>false</b> means the opposite.\n
2642      * \n
2643      * Format of the return value {@link ArkUI_AttributeItem}:\n
2644      * .value[0].i32: The value <b>1</b> means to show the loading animation, and <b>0</b> means the opposite. \n
2645      *
2646      */
2647     NODE_LOADING_PROGRESS_ENABLE_LOADING,
2648 
2649     /**
2650      * @brief Defines the default placeholder text of the single-line text box.
2651      * This attribute can be set, reset, and obtained as required through APIs.
2652      *
2653      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2654      * .string: default placeholder text. \n
2655      * \n
2656      * Format of the return value {@link ArkUI_AttributeItem}:\n
2657      * .string: default placeholder text. \n
2658      *
2659      */
2660     NODE_TEXT_INPUT_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
2661     /**
2662      * @brief Defines the default text content of the single-line text box.
2663      * This attribute can be set, reset, and obtained as required through APIs.
2664      *
2665      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2666      * .string: default text content. \n
2667      * \n
2668      * Format of the return value {@link ArkUI_AttributeItem}:\n
2669      * .string: default text content. \n
2670      *
2671      */
2672     NODE_TEXT_INPUT_TEXT,
2673     /**
2674      * @brief Defines the caret color attribute.
2675      * This attribute can be set, reset, and obtained as required through APIs.
2676      *
2677      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2678      * .value[0].u32: caret color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
2679      * \n
2680      * Format of the return value {@link ArkUI_AttributeItem}:\n
2681      * .value[0].u32: caret color, in 0xARGB format. \n
2682      *
2683      */
2684     NODE_TEXT_INPUT_CARET_COLOR,
2685     /**
2686      * @brief Defines the caret style attribute.
2687      * This attribute can be set, reset, and obtained as required through APIs.
2688      *
2689      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2690      * .value[0].f32: caret width, in vp.\n
2691      * \n
2692      * Format of the return value {@link ArkUI_AttributeItem}:\n
2693      * .value[0].f32: caret width, in vp. \n
2694      *
2695      */
2696     NODE_TEXT_INPUT_CARET_STYLE,
2697     /**
2698      * @brief Defines the underline attribute of the single-line text box.
2699      * This attribute can be set, reset, and obtained as required through APIs.
2700      *
2701      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2702      * .value[0].i32: whether to show an underline.
2703      * The value <b>true</b> means to show an underline, and <b>false</b> means the opposite.\n
2704      * \n
2705      * Format of the return value {@link ArkUI_AttributeItem}:\n
2706      * .value[0].i32: The value <b>1</b> means to show an underline, and <b>0</b> means the opposite. \n
2707      *
2708      */
2709     NODE_TEXT_INPUT_SHOW_UNDERLINE,
2710     /**
2711      * @brief Defines the maximum number of characters in the TextInput.
2712      * This attribute can be set, reset, and obtained as required through APIs.
2713      *
2714      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2715      * .value[0].i32: maximum number of characters in the TextInput, without a unit. \n
2716      * \n
2717      * Format of the return value {@link ArkUI_AttributeItem}:\n
2718      * .value[0].i32: maximum number of characters in the TextInput. \n
2719      *
2720      */
2721     NODE_TEXT_INPUT_MAX_LENGTH,
2722     /**
2723      * @brief Defines the type of the Enter key.
2724      * This attribute can be set, reset, and obtained as required through APIs.
2725      *
2726      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2727      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is
2728      * <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
2729      * \n
2730      * Format of the return value {@link ArkUI_AttributeItem}:\n
2731      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
2732      *
2733      */
2734     NODE_TEXT_INPUT_ENTER_KEY_TYPE,
2735     /**
2736      * @brief Defines the placeholder text color.
2737      * This attribute can be set, reset, and obtained as required through APIs.
2738      *
2739      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2740      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2741      * \n
2742      * Format of the return value {@link ArkUI_AttributeItem}:\n
2743      * .value[0].u32: color value, in 0xARGB format. \n
2744      *
2745      */
2746     NODE_TEXT_INPUT_PLACEHOLDER_COLOR,
2747     /**
2748      * @brief Defines the placeholder text font.
2749      * This attribute can be set, reset, and obtained as required through APIs.
2750      *
2751      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2752      * .value[0]?.f32: font size, in fp. Optional. The default value is <b>16.0</b>.\n
2753      * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optional.
2754      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>. \n
2755      * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional.
2756      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
2757      * ?.string: font family. Multiple font families are separated by commas (,).
2758      * Example: "font weight; font family 1, font family 2". \n
2759      * \n
2760      * Format of the return value {@link ArkUI_AttributeItem}:\n
2761      * .value[0].f32: font size, in fp.\n
2762      * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
2763      * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
2764      * .string: font family. Multiple font families are separated by commas (,). \n
2765      *
2766      */
2767     NODE_TEXT_INPUT_PLACEHOLDER_FONT,
2768     /**
2769      * @brief Defines whether to enable the input method when the component obtains focus.
2770      * This attribute can be set, reset, and obtained as required through APIs.
2771      *
2772      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2773      * .value[0].i32: whether to enable the input method when the component obtains focus.
2774      * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
2775      * \n
2776      * Format of the return value {@link ArkUI_AttributeItem}:\n
2777       * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
2778       * and <b>0</b> means the opposite. \n
2779      *
2780      */
2781     NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS,
2782     /**
2783      * @brief Defines the text box type. This attribute can be set, reset, and obtained as required through APIs.
2784      *
2785      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2786      * .value[0].i32: text box type {@link ArkUI_TextInputType}.
2787      * The default value is <b>ARKUI_TEXTINPUT_TYPE_NORMAL</b>. \n
2788      * \n
2789      * Format of the return value {@link ArkUI_AttributeItem}:\n
2790      * .value[0].i32: text box type {@link ArkUI_TextInputType}. \n
2791      *
2792      */
2793     NODE_TEXT_INPUT_TYPE,
2794     /**
2795      * @brief Defines the background color of the selected text.
2796      * This attribute can be set, reset, and obtained as required through APIs.
2797      *
2798      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2799      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2800      * \n
2801      * Format of the return value {@link ArkUI_AttributeItem}:\n
2802      * .value[0].u32: color value, in 0xARGB format. \n
2803      *
2804      */
2805     NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR,
2806     /**
2807      * @brief Defines whether to display the password icon at the end of the password text box.
2808      * This attribute can be set, reset, and obtained as required through APIs.
2809      *
2810      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2811      * .value[0].i32: whether to display the password icon at the end of the password text box.
2812      * The value <b>true</b> means to display the password icon, and <b>false</b> means the opposite.\n
2813      * \n
2814      * Format of the return value {@link ArkUI_AttributeItem}:\n
2815      * .value[0].i32: The value <b>1</b> means to display the password icon at the end of the password text box,
2816      * and <b>0</b> means the opposite. \n
2817      *
2818      */
2819     NODE_TEXT_INPUT_SHOW_PASSWORD_ICON,
2820     /**
2821      * @brief Defines the editable state for the single-line text box.
2822      * This attribute can be set as required through APIs.
2823      *
2824      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2825      * .value[0].i32: whether to remain in the editable state. The value
2826      * <b>true</b> means to remain in the editable state, and <b>false</b> means to exit the editable state. \n
2827      * \n
2828      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
2829      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
2830      * state, and <b>false</b> means to exit the editable state. \n
2831      *
2832      */
2833     NODE_TEXT_INPUT_EDITING,
2834     /**
2835      * @brief Defines the style of the cancel button on the right of the single-line text box.
2836      * This attribute can be set, reset, and obtained as required through APIs.
2837      *
2838      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2839      * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.
2840      * The default value is <b>ARKUI_CANCELBUTTON_STYLE_INPUT</b>.\n
2841      * .value[1]?.f32: button icon size, in vp.\n
2842      * .value[2]?.u32: button icon color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2843      * ?.string: button icon image source. The value is the local address of the image, for example, /pages/icon.png. \n
2844      * \n
2845      * Format of the return value {@link ArkUI_AttributeItem}:\n
2846      * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.\n
2847      * .value[1].f32: icon size, in vp.\n
2848      * .value[2].u32: button icon color, in 0xARGB format.\n
2849      * .string: button icon image source. \n
2850      *
2851      */
2852     NODE_TEXT_INPUT_CANCEL_BUTTON,
2853     /**
2854      * @brief Sets the text selection area, which will be highlighted.
2855      * This attribute can be set, reset, and obtained as required through APIs.
2856      *
2857      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2858      * .value[0].i32: start position of the text selection. \n
2859      * .value[1].i32: end position of the text selection. \n
2860      * \n
2861      * Format of the return value {@link ArkUI_AttributeItem}:\n
2862      * .value[0].i32: start position of the text selection. \n
2863      * .value[1].i32: end position of the text selection. \n
2864      *
2865      */
2866     NODE_TEXT_INPUT_TEXT_SELECTION,
2867     /**
2868     * @brief Sets the color of the text underline when it is enabled.
2869     *
2870     * The default underline color configured for the theme is <b>'0x33182431'</b>.
2871     *
2872     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2873     * .value[0].u32: color of the underline applied to the text being typed in.
2874     * The value is in 0xARGB format. \n
2875     * .value[1].u32: color of the underline applied to the text in the normal state.
2876     * The value is in 0xARGB format. \n
2877     * .value[2].u32: color of the underline applied to the text when an error is detected.
2878     * The value is in 0xARGB format. \n
2879     * .value[3].u32: color of the underline applied to the text when it is disabled.
2880     * The value is in 0xARGB format. \n
2881     * \n
2882     * Format of the return value {@link ArkUI_AttributeItem}:\n
2883     * .value[0].u32: color of the underline applied to the text being typed in. The value is in 0xARGB format. \n
2884     * .value[1].u32: color of the underline applied to the text in the normal state. The value is in 0xARGB format. \n
2885     * .value[2].u32: color of the underline applied to the text when an error is detected.
2886     * The value is in 0xARGB format. \n
2887     * .value[3].u32: color of the underline applied to the text when it is disabled. The value is in 0xARGB format. \n
2888     *
2889     */
2890     NODE_TEXT_INPUT_UNDERLINE_COLOR,
2891     /**
2892     * @brief Sets whether to enable autofill.
2893     *
2894     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2895     * .value[0].i32: whether to enable autofill. The default value is <b>true</b>. \n
2896     * \n
2897     * Format of the return value {@link ArkUI_AttributeItem}:\n
2898     * .value[0].i32: whether to enable autofill. \n
2899     *
2900     */
2901     NODE_TEXT_INPUT_ENABLE_AUTO_FILL,
2902     /**
2903     * @brief Sets the autofill type.
2904     *
2905     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2906     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
2907     * \n
2908     * Format of the return value {@link ArkUI_AttributeItem}:\n
2909     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
2910     *
2911     */
2912     NODE_TEXT_INPUT_CONTENT_TYPE,
2913     /**
2914     * @brief Defines the rules for generating passwords. When autofill is used, these rules are transparently
2915     * transmitted to Password Vault for generating a new password.
2916     *
2917     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2918     * .string: rules for generating passwords. \n
2919     * \n
2920     * Format of the return value {@link ArkUI_AttributeItem}:\n
2921     * .string: rules for generating passwords. \n
2922     *
2923     */
2924     NODE_TEXT_INPUT_PASSWORD_RULES,
2925     /**
2926     * @brief Sets whether to select all text in the initial state. The inline mode is not supported.
2927     *
2928     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2929     * .value[0].i32: whether to select all text in the initial state. The default value is b>false</b>. \n
2930     * \n
2931     * Format of the return value {@link ArkUI_AttributeItem}:\n
2932     * .value[0].i32: whether to select all text in the initial state. \n
2933     *
2934     */
2935     NODE_TEXT_INPUT_SELECT_ALL,
2936     /**
2937     * @brief Sets the regular expression for input filtering. Only inputs that comply with the regular expression can be
2938     * displayed. Other inputs are filtered out. The specified regular expression can match single characters,
2939     * but not strings.
2940     *
2941     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2942     * .string: regular expression. \n
2943     * \n
2944     * Format of the return value {@link ArkUI_AttributeItem}:\n
2945     * .string: regular expression. \n
2946     *
2947     */
2948     NODE_TEXT_INPUT_INPUT_FILTER,
2949     /**
2950     * @brief Sets the text box to the default style or inline input style.
2951     *
2952     * For the inline input style, only <b>InputType.Normal</b> is supported.
2953     *
2954     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2955     * .value[0].i32: TextInput style. The parameter type is {@link ArkUI_TextInputStyle}. \n
2956     * \n
2957     * Format of the return value {@link ArkUI_AttributeItem}:\n
2958     * .value[0].i32: TextInput style. The parameter type is {@link ArkUI_TextInputStyle}. \n
2959     *
2960     */
2961     NODE_TEXT_INPUT_STYLE,
2962     /**
2963     * @brief Sets or obtains the caret position.
2964     *
2965     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2966     * In the case of setting the caret position:
2967     * .value[0].i32: character count from the beginning of a string to the caret position. \n
2968     *
2969     * Format of the return value {@link ArkUI_AttributeItem}:\n
2970     * In the case of obtaining the caret position: If this API is called when the caret position is updated in the
2971     * current frame, it will not take effect.
2972     * .value[0].i32: index of the caret position. \n
2973     * .value[1].f32: X coordinate of the caret relative to the text box. \n
2974     * .value[2].f32: Y coordinate of the caret relative to the text box. \n
2975     */
2976     NODE_TEXT_INPUT_CARET_OFFSET,
2977     /**
2978     * @brief Obtains the position of the edited TextArea relative to the component and its size.
2979     *
2980     * Format of the return value {@link ArkUI_AttributeItem}:\n
2981     * .value[0].f32: horizontal coordinate. \n
2982     * .value[1].f32: vertical coordinate. \n
2983     * .value[2].f32: content width. \n
2984     * .value[3].f32: content height. \n
2985     *
2986     */
2987     NODE_TEXT_INPUT_CONTENT_RECT,
2988     /**
2989     * @brief Obtains the number of lines of the edited text.
2990     *
2991     * Format of the return value {@link ArkUI_AttributeItem}:\n
2992     * .value[0].i32: number of lines of the edited text. \n
2993     *
2994     */
2995     NODE_TEXT_INPUT_CONTENT_LINE_COUNT,
2996     /**
2997      * @brief Sets whether to hide the text selection menu when the text box is long-pressed, double-click, or
2998      * right-clicked. This attribute can be set, reset, and obtained as required through APIs.
2999      *
3000      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3001      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
3002      * right-clicked. The default value is <b>false</b>. \n
3003      * \n
3004      * Format of the return value {@link ArkUI_AttributeItem}:\n
3005      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
3006      * right-clicked. \n
3007      *
3008      */
3009     NODE_TEXT_INPUT_SELECTION_MENU_HIDDEN,
3010     /**
3011      * @brief Sets whether the text box loses focus after the Enter key is pressed to submit information.
3012      *
3013      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3014      * .value[0].i32: whether the text box loses focus. \n
3015      * \n
3016      * Format of the return value {@link ArkUI_AttributeItem}:\n
3017      * .value[0].i32: whether the text box loses focus. \n
3018      *
3019      */
3020     NODE_TEXT_INPUT_BLUR_ON_SUBMIT,
3021     /**
3022      * @brief Set up a custom keyboard.
3023      *
3024      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3025      * .object:custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}.\n
3026      * .value[0]?.i32:Sets whether the custom keyboard supports the avoidance feature, default value false.\n
3027      * \n
3028      * Format of the return value {@link ArkUI_AttributeItem}:\n
3029      * .object:custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}.\n
3030      * .value[0].i32:Set whether the custom keyboard supports the avoidance function.\n
3031      *
3032      */
3033     NODE_TEXT_INPUT_CUSTOM_KEYBOARD,
3034     /**
3035      * @brief Defines the line break rule. This attribute can be set, reset, and obtained as required through APIs.
3036      *
3037      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3038      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
3039      * \n
3040      * Format of the return value {@link ArkUI_AttributeItem}:\n
3041      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
3042      *
3043      */
3044     NODE_TEXT_INPUT_WORD_BREAK,
3045 
3046     /**
3047      * @brief Sets whether the keyboard pops up when TextInput gains focus.
3048      * It supports property setting, property reset and property acquisition interfaces.
3049      *
3050      * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
3051      * .value[0].i32: Whether to pop up the keyboard. \n
3052      * \n
3053      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format:\n
3054      * .value[0].i32: Whether to pop up the keyboard. \n
3055      *
3056      */
3057     NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS,
3058 
3059     /**
3060      * @brief When this property is set, the height of the TextInput component is calculated using this property.
3061      *
3062      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3063      * .value[0].i32: set the value of numberOfLines.\n
3064      * \n
3065      * Format of the return value {@link ArkUI_AttributeItem}:\n
3066      * .value[0].i32: the value of numberOfLines.\n
3067      *
3068      */
3069     NODE_TEXT_INPUT_NUMBER_OF_LINES,
3070 
3071     /**
3072      * @brief Sets the letter spacing of the <b>TextInput</b> component.
3073      * This attribute can be set, reset, and obtained as required through APIs.
3074      *
3075      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3076      * .value[0].f32: letter spacing. The default unit is fp. \n
3077      * \n
3078      * Format of the return value {@link ArkUI_AttributeItem}:\n
3079      * .value[0].f32: letter spacing. The default unit is fp. \n
3080      *
3081      * @since 16
3082      */
3083     NODE_TEXT_INPUT_LETTER_SPACING = 7032,
3084 
3085     /**
3086      * @brief Sets whether to enable preview text for the <b>TextInput</b> component.
3087      * This attribute can be set, reset, and obtained as required through APIs.
3088      *
3089      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3090      * .value[0].i32: whether to enable preview tex. \n
3091      * \n
3092      * Format of the return value {@link ArkUI_AttributeItem}:\n
3093      * .value[0].i32: whether to enable preview tex. \n
3094      *
3095      * @since 16
3096      */
3097     NODE_TEXT_INPUT_ENABLE_PREVIEW_TEXT = 7033,
3098 
3099     /**
3100      * @brief Sets whether to center text vertically in the textInput component.
3101      *
3102      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3103      * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
3104      * \n
3105      * Format of the return value {@link ArkUI_AttributeItem}:\n
3106      * .value[0].i32: whether to center text vertically. \n
3107      *
3108      * @since 16
3109      */
3110     NODE_TEXT_INPUT_HALF_LEADING = 7034,
3111 
3112     /**
3113     * @brief Set the keyboard style of textInput
3114     *
3115     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3116     * .value[0].i32: keyboard style,the parameter type is {@link ArkUI_KeyboardAppearance}.\n
3117     * \n
3118     * Format of the return value {@link ArkUI_AttributeItem}:\n
3119     * .value[0].i32: keyboard style,the parameter type is {@link ArkUI_KeyboardAppearance}.\n
3120     *
3121     * @since 15
3122     */
3123     NODE_TEXT_INPUT_KEYBOARD_APPEARANCE = 7035,
3124 
3125     /**
3126      * @brief Defines the default placeholder text for the multi-line text box.
3127      * This attribute can be set, reset, and obtained as required through APIs.
3128      *
3129      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3130      * .string: default placeholder text. \n
3131      * \n
3132      * Format of the return value {@link ArkUI_AttributeItem}:\n
3133      * .string: default placeholder text. \n
3134      *
3135      */
3136     NODE_TEXT_AREA_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
3137     /**
3138      * @brief Defines the default text content for the multi-line text box.
3139      * This attribute can be set, reset, and obtained as required through APIs.
3140      *
3141      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3142      * .string: default text content. \n
3143      * \n
3144      * Format of the return value {@link ArkUI_AttributeItem}:\n
3145      * .string: default text content. \n
3146      *
3147      */
3148     NODE_TEXT_AREA_TEXT,
3149     /**
3150      * @brief Defines the maximum number of characters in the TextInput.
3151      * This attribute can be set, reset, and obtained as required through APIs.
3152      *
3153      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3154      * .value[0].i32: maximum number of characters in the TextInput. \n
3155      * \n
3156      * Format of the return value {@link ArkUI_AttributeItem}:\n
3157      * .value[0].i32: maximum number of characters in the TextInput. \n
3158      *
3159      */
3160     NODE_TEXT_AREA_MAX_LENGTH,
3161     /**
3162      * @brief Defines the placeholder text color.
3163      * This attribute can be set, reset, and obtained as required through APIs.
3164      *
3165      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3166      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3167      * \n
3168      * Format of the return value {@link ArkUI_AttributeItem}:\n
3169      * .value[0].u32: color value, in 0xARGB format. \n
3170      *
3171      */
3172     NODE_TEXT_AREA_PLACEHOLDER_COLOR,
3173     /**
3174      * @brief Defines the placeholder text font.
3175      * This attribute can be set, reset, and obtained as required through APIs.
3176      *
3177      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3178      * .value[0]?.f32: font size, in fp. Optional. The default value is <b>16.0</b>.\n
3179      * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optional. The default value is
3180      * <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
3181      * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional. The default value is
3182      * <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
3183      * ?.string: font family. Multiple font families are separated by commas (,).
3184      * For example, "font weight; font family 1, font family 2". \n
3185      * \n
3186      * Format of the return value {@link ArkUI_AttributeItem}:\n
3187      * .value[0].f32: font size, in fp.\n
3188      * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
3189      * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
3190      * .string: font family. Multiple font families are separated by commas (,). \n
3191      *
3192      */
3193     NODE_TEXT_AREA_PLACEHOLDER_FONT,
3194     /**
3195      * @brief Defines the caret color attribute.
3196      * This attribute can be set, reset, and obtained as required through APIs.
3197      *
3198      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3199      * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3200      * \n
3201      * Format of the return value {@link ArkUI_AttributeItem}:\n
3202      * .value[0].u32: background color, in 0xARGB format. \n
3203      *
3204      */
3205     NODE_TEXT_AREA_CARET_COLOR,
3206     /**
3207      * @brief Defines the editable state for the multi-line text box.
3208      * This attribute can be set as required through APIs.
3209      *
3210      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3211      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the
3212      * editable state, and <b>false</b> means to exit the editable state.\n \n
3213      * \n
3214      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
3215      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
3216      * state, and <b>false</b> means to exit the editable state.\n \n
3217      *
3218      */
3219     NODE_TEXT_AREA_EDITING,
3220     /**
3221      * @brief Defines the text box type. This attribute can be set, reset, and obtained as required through APIs.
3222      *
3223      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3224      * .value[0].i32: text box type {@link ArkUI_TextAreaType}.
3225      * The default value is <b>ARKUI_TEXTAREA_TYPE_NORMAL</b>. \n
3226      * \n
3227      * Format of the return value {@link ArkUI_AttributeItem}:\n
3228      * .value[0].i32: text box type {@link ArkUI_TextAreaType}. \n
3229      *
3230      */
3231     NODE_TEXT_AREA_TYPE,
3232     /**
3233      * @brief Defines the counter settings. This attribute can be set, reset, and obtained as required through APIs.
3234      *
3235      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3236      * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
3237      * .value[1]?.f32: threshold percentage for displaying the character counter. The character counter is displayed
3238      * when the number of characters that have been entered is greater than the maximum number of characters multiplied
3239      * by the threshold percentage value. The value range is 1 to 100. If the value is a decimal, it is rounded down. \n
3240      * .value[2]?.i32: whether to highlight the border when the number of entered characters reaches the maximum. \n
3241      * \n
3242      * Format of the return value {@link ArkUI_AttributeItem}:\n
3243      * .value[0].i32: whether to show a character counter. \n
3244      * .value[1].f32: threshold percentage for displaying the character counter. The character counter is displayed
3245      * when the number of characters that have been entered is greater than the maximum number of characters multiplied
3246      * by the threshold percentage value. The value range is 1 to 100. \n
3247      * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
3248      * The default value is <b>true</b>. \n
3249      *
3250      */
3251     NODE_TEXT_AREA_SHOW_COUNTER,
3252 
3253     /**
3254      * @brief Sets whether to hide the text selection menu when the text box is long-pressed, double-click,
3255      * or right-clicked. This attribute can be set, reset, and obtained as required through APIs.
3256      *
3257      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3258      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
3259      * or right-clicked. The default value is <b>false</b>. \n
3260      * \n
3261      * Format of the return value {@link ArkUI_AttributeItem}:\n
3262      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
3263      * or right-clicked. \n
3264      *
3265      */
3266     NODE_TEXT_AREA_SELECTION_MENU_HIDDEN,
3267     /**
3268      * @brief Sets whether the multi-line text box loses focus after the Enter key is pressed to submit information.
3269      *
3270      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3271      * .value[0].i32: whether the text box loses focus. \n
3272      * \n
3273      * Format of the return value {@link ArkUI_AttributeItem}:\n
3274      * .value[0].i32: whether the text box loses focus. \n
3275      *
3276      */
3277     NODE_TEXT_AREA_BLUR_ON_SUBMIT,
3278     /**
3279      * @brief Sets the regular expression for input filtering.
3280      * Only inputs that comply with the regular expression can be displayed.
3281      * Other inputs are filtered out. The specified regular expression can match single characters,
3282      * but not strings.
3283      *
3284      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3285      * .string: regular expression. \n
3286      * \n
3287      * Format of the return value {@link ArkUI_AttributeItem}:\n
3288      * .string: regular expression. \n
3289      *
3290      */
3291     NODE_TEXT_AREA_INPUT_FILTER,
3292     /**
3293      * @brief Defines the background color of the selected text.
3294      * This attribute can be set, reset, and obtained as required through APIs.
3295      *
3296      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3297      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3298      * \n
3299      * Format of the return value {@link ArkUI_AttributeItem}:\n
3300      * .value[0].u32: color value, in 0xARGB format. \n
3301      *
3302      */
3303     NODE_TEXT_AREA_SELECTED_BACKGROUND_COLOR,
3304     /**
3305      * @brief Defines the type of the Enter key.
3306      * This attribute can be set, reset, and obtained as required through APIs.
3307      *
3308      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3309      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
3310      * \n
3311      * Format of the return value {@link ArkUI_AttributeItem}:\n
3312      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
3313      *
3314      */
3315     NODE_TEXT_AREA_ENTER_KEY_TYPE,
3316     /**
3317      * @brief Defines whether to enable the input method when the component obtains focus.
3318      * This attribute can be set, reset, and obtained as required through APIs.
3319      *
3320      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3321      * .value[0].i32: whether to enable the input method when the component obtains focus.
3322      * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
3323      * \n
3324      * Format of the return value {@link ArkUI_AttributeItem}:\n
3325      * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
3326      * and <b>0</b> means the opposite. \n
3327      *
3328      */
3329     NODE_TEXT_AREA_ENABLE_KEYBOARD_ON_FOCUS,
3330     /**
3331     * @brief Sets or retrieves the caret position information.
3332     *
3333     * The property setting method accepts parameters in the format of {@link ArkUI_AttributeItem}:\n
3334     * Sets the position of the input caret. \n
3335     * .value[0].i32: The number of characters from the start of the string to the caret position. \n
3336     *
3337     * The property retrieval method returns values in the format of {@link ArkUI_AttributeItem}:\n
3338     * Returns the current caret position information. \n
3339     * In the case of obtaining the caret position: If this API is called when the caret position is updated in the
3340     * current frame, it will not take effect. \n
3341     * value[0].i32: The index of the caret position. \n
3342     * value[1].f32: The x-coordinate of the caret relative to the TextArea. \n
3343     * value[2].f32: The y-coordinate of the caret relative to the TextArea. \n
3344     */
3345     NODE_TEXT_AREA_CARET_OFFSET,
3346     /**
3347      * @brief Obtains the position of the edited TextArea relative to the component and its size.
3348      *
3349      * Format of the return value {@link ArkUI_AttributeItem}:\n
3350      * .value[0].f32: horizontal coordinate. \n
3351      * .value[1].f32: vertical coordinate. \n
3352      * .value[2].f32: content width. \n
3353      * .value[3].f32: content height. \n
3354      *
3355      */
3356     NODE_TEXT_AREA_CONTENT_RECT,
3357     /**
3358      * @brief Obtains the number of lines of the edited text.
3359      *
3360      * Format of the return value {@link ArkUI_AttributeItem}:\n
3361      * .value[0].i32: number of lines of the edited text. \n
3362      *
3363      */
3364     NODE_TEXT_AREA_CONTENT_LINE_COUNT,
3365     /**
3366      * @brief Sets the text selection area, which will be highlighted.
3367      * This attribute can be set, reset, and obtained as required through APIs.
3368      *
3369      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3370      * .value[0].i32: start position of the text selection. \n
3371      * .value[1].i32: end position of the text selection. \n
3372      * \n
3373      * Format of the return value {@link ArkUI_AttributeItem}:\n
3374      * .value[0].i32: start position of the text selection. \n
3375      * .value[1].i32: end position of the text selection. \n
3376      *
3377      */
3378     NODE_TEXT_AREA_TEXT_SELECTION,
3379     /**
3380      * @brief Sets whether to enable autofill.
3381      *
3382      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3383      * .value[0].i32: whether to enable autofill. The default value is <b>true</b>. \n
3384      * \n
3385      * Format of the return value {@link ArkUI_AttributeItem}:\n
3386      * .value[0].i32: whether to enable autofill. \n
3387      *
3388      */
3389     NODE_TEXT_AREA_ENABLE_AUTO_FILL,
3390     /**
3391      * @brief Sets the autofill type.
3392      *
3393      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3394      * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
3395      * \n
3396      * Format of the return value {@link ArkUI_AttributeItem}:\n
3397      * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
3398      *
3399      */
3400     NODE_TEXT_AREA_CONTENT_TYPE,
3401 
3402     /**
3403      * @brief Sets whether the keyboard pops up when TextArea gains focus.
3404      * It supports property setting, property reset and property acquisition interfaces.
3405      *
3406      * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
3407      * .value[0].i32: Whether to pop up the keyboard. \n
3408      * \n
3409      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format:\n
3410      * .value[0].i32: Whether to pop up the keyboard. \n
3411      *
3412      */
3413     NODE_TEXT_AREA_SHOW_KEYBOARD_ON_FOCUS,
3414 
3415     /**
3416      * @brief When this property is set, the height of the textArea component is calculated using this property.
3417      *
3418      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3419      * .value[0].i32: set the value of numberOfLines.\n
3420      * \n
3421      * Format of the return value {@link ArkUI_AttributeItem}:\n
3422      * .value[0].i32: Set the value of numberOfLines\n
3423      *
3424      */
3425     NODE_TEXT_AREA_NUMBER_OF_LINES,
3426 
3427     /**
3428      * @brief Sets the letter spacing of the <b>TextArea</b> component.
3429      * This attribute can be set, reset, and obtained as required through APIs.
3430      *
3431      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3432      * .value[0].f32: letter spacing. The default unit is fp. \n
3433      * \n
3434      * Format of the return value {@link ArkUI_AttributeItem}:\n
3435      * .value[0].f32: letter spacing. The default unit is fp. \n
3436      *
3437      * @since 16
3438      */
3439     NODE_TEXT_AREA_LETTER_SPACING = 8023,
3440 
3441     /**
3442      * @brief Sets whether to enable preview text for the <b>TextArea</b> component.
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: whether to enable preview tex. \n
3447      * \n
3448      * Format of the return value {@link ArkUI_AttributeItem}:\n
3449      * .value[0].i32: whether to enable preview tex. \n
3450      *
3451      * @since 16
3452      */
3453     NODE_TEXT_AREA_ENABLE_PREVIEW_TEXT = 8024,
3454 
3455     /**
3456      * @brief Sets whether to center text vertically in the textArea component.
3457      *
3458      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3459      * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
3460      * \n
3461      * Format of the return value {@link ArkUI_AttributeItem}:\n
3462      * .value[0].i32: whether to center text vertically. \n
3463      *
3464      * @since 16
3465      */
3466     NODE_TEXT_AREA_HALF_LEADING = 8025,
3467 
3468     /**
3469     * @brief Set the keyboard style of textArea
3470     *
3471     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3472     * .value[0].i32:keyboard style,the parameter type is {@link ArkUI_KeyboardAppearance}.\n
3473     * \n
3474     * Format of the return value {@link ArkUI_AttributeItem}:\n
3475     * .value[0].i32:keyboard style,the parameter type is {@link ArkUI_KeyboardAppearance}.\n
3476     *
3477     * @since 15
3478     */
3479     NODE_TEXT_AREA_KEYBOARD_APPEARANCE = 8026,
3480 
3481     /**
3482      * @brief Defines the button text content. 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: default text content. \n
3486      * \n
3487      * Format of the return value {@link ArkUI_AttributeItem}:\n
3488      * .string: default text content. \n
3489      *
3490      */
3491     NODE_BUTTON_LABEL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_BUTTON,
3492 
3493     /**
3494      * @brief Sets the button type. This attribute can be set, reset, and obtained as required through APIs.
3495      *
3496      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3497      * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
3498      * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
3499      * After api 18 the default value change to  <b>ARKUI_BUTTON_ROUNDED_RECTANGLE</b>.
3500      * \n
3501      * Format of the return value {@link ArkUI_AttributeItem}:\n
3502      * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
3503      * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
3504      * After api 18 the default value change to  <b>ARKUI_BUTTON_ROUNDED_RECTANGLE</b>.
3505      *
3506      */
3507     NODE_BUTTON_TYPE,
3508 
3509     /**
3510     * @brief Defines the minimum font scale attribute, which can be set, reset, and obtained as required through APIs.
3511     *
3512     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3513     * .value[0].f32: minimum font scale, in fp.
3514     * \n
3515     * Format of the return value {@link ArkUI_AttributeItem}:\n
3516     * .value[0].f32: minimum font scale, in fp.
3517     *
3518     * @since 18
3519     */
3520     NODE_BUTTON_MIN_FONT_SCALE,
3521 
3522     /**
3523     * @brief Defines the maximum font scale attribute, which can be set, reset, and obtained as required through APIs.
3524     *
3525     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3526     * .value[0].f32: maximum font scale, in fp.
3527     * \n
3528     * Format of the return value {@link ArkUI_AttributeItem}:\n
3529     * .value[0].f32: maximum font scale, in fp.
3530     *
3531     * @since 18
3532     */
3533     NODE_BUTTON_MAX_FONT_SCALE,
3534 
3535     /**
3536      * @brief Defines the current value of the progress indicator.
3537      * This attribute can be set, reset, and obtained as required through APIs.
3538      *
3539      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3540      * .value[0].f32: current value of the progress indicator. \n
3541      * \n
3542      * Format of the return value {@link ArkUI_AttributeItem}:\n
3543      * .value[0].f32: current value of the progress indicator. \n
3544      *
3545      */
3546     NODE_PROGRESS_VALUE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PROGRESS,
3547     /**
3548      * @brief Defines the total value of the progress indicator.
3549      * This attribute can be set, reset, and obtained as required through APIs.
3550      *
3551      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3552      * .value[0].f32: total value of the progress indicator. \n
3553      * \n
3554      * Format of the return value {@link ArkUI_AttributeItem}:\n
3555      * .value[0].f32: total value of the progress indicator. \n
3556      *
3557      */
3558     NODE_PROGRESS_TOTAL,
3559     /**
3560      * @brief Defines the color for the progress value on the progress indicator.
3561      * This attribute can be set, reset, and obtained as required through APIs.
3562      *
3563      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3564      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3565      * \n
3566      * Format of the return value {@link ArkUI_AttributeItem}:\n
3567      * .value[0].u32: color value, in 0xARGB format. \n
3568      *
3569      */
3570     NODE_PROGRESS_COLOR,
3571     /**
3572      * @brief Defines the type of the progress indicator.
3573      * This attribute can be set, reset, and obtained as required through APIs.
3574      *
3575      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3576      * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}.
3577      * The default value is <b>ARKUI_PROGRESS_TYPE_LINEAR</b>. \n
3578      * \n
3579      * Format of the return value {@link ArkUI_AttributeItem}:\n
3580      * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}. \n
3581      *
3582      */
3583     NODE_PROGRESS_TYPE,
3584     /**
3585      * @brief Sets the style of the linear progress indicator.
3586      * This attribute can be set, reset, and obtained as required through APIs.
3587      * If the progress indicator type is not linear, it will not take effect.
3588      *
3589      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3590      * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to set the style. \n
3591      * \n
3592      * Format of the return value {@link ArkUI_AttributeItem}:\n
3593      * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to get the style. \n
3594      *
3595      * @since 15
3596      */
3597     NODE_PROGRESS_LINEAR_STYLE,
3598 
3599     /**
3600      * @brief Defines whether the check box is selected.
3601      * This attribute can be set, reset, and obtained as required through APIs.
3602      *
3603      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3604      * .value[0].i32: whether the check box is selected.
3605      * The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
3606      * \n
3607      * Format of the return value {@link ArkUI_AttributeItem}:\n
3608      * .value[0].i32: The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
3609      *
3610      */
3611     NODE_CHECKBOX_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,
3612 
3613     /**
3614      * @brief Defines the color of the check box when it is selected.
3615      * This attribute can be set, reset, and obtained as required through APIs.
3616      *
3617      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3618      * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
3619      * \n
3620      * Format of the return value {@link ArkUI_AttributeItem}:\n
3621      * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>.
3622      *
3623      */
3624     NODE_CHECKBOX_SELECT_COLOR,
3625 
3626     /**
3627      * @brief Defines the border color of the check box when it is not selected.
3628      * This attribute can be set, reset, and obtained as required through APIs.
3629      *
3630      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3631      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
3632      * \n
3633      * Format of the return value {@link ArkUI_AttributeItem}:\n
3634      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
3635      *
3636      */
3637     NODE_CHECKBOX_UNSELECT_COLOR,
3638 
3639     /**
3640      * @brief Defines the internal icon style of the check box.
3641      * This attribute can be set, reset, and obtained as required through APIs.
3642      *
3643      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3644      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
3645      * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
3646      * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
3647      * \n
3648      * Format of the return value {@link ArkUI_AttributeItem}:\n
3649      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
3650      * .value[1].f32: size of the internal mark, in vp. \n
3651      * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
3652      *
3653      */
3654     NODE_CHECKBOX_MARK,
3655 
3656     /**
3657      * @brief Defines the shape of the check box.
3658      * This attribute can be set, reset, and obtained as required through APIs.
3659      *
3660      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3661      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
3662      * \n
3663      * Format of the return value {@link ArkUI_AttributeItem}:\n
3664      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
3665      *
3666      */
3667     NODE_CHECKBOX_SHAPE,
3668 
3669     /**
3670      * @brief Defines the name of the checkbox.
3671      * This attribute can be set, reset, and obtained as required through APIs.
3672      *
3673      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3674      * .string: component name. \n
3675      * \n
3676      * Format of the return value {@link ArkUI_AttributeItem}:\n
3677      * .string: component name. \n
3678      *
3679      *@since 15
3680      */
3681     NODE_CHECKBOX_NAME = 11005,
3682 
3683     /**
3684      * @brief Defines the name of the checkbox.
3685      * This attribute can be set, reset, and obtained as required through APIs.
3686      *
3687      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3688      * .string: component name. \n
3689      * \n
3690      * Format of the return value {@link ArkUI_AttributeItem}:\n
3691      * .string: component name. \n
3692      *
3693      * @since 15
3694      */
3695     NODE_CHECKBOX_GROUP = 11006,
3696 
3697     /**
3698      * @brief Defines the ID of the <b><XComponent></b> component.
3699      * This attribute can be set and obtained as required through APIs.
3700      *
3701      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3702      * .string: component ID. \n
3703      * \n
3704      * Format of the return value {@link ArkUI_AttributeItem}:\n
3705      * .string: component ID. \n
3706      *
3707      */
3708     NODE_XCOMPONENT_ID = MAX_NODE_SCOPE_NUM * ARKUI_NODE_XCOMPONENT,
3709     /**
3710      * @brief Defines the type of the <b><XComponent></b> component.
3711      * This attribute can be set, reset, and obtained as required through APIs.
3712      *
3713      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3714      * .value[0].i32: type {@link ArkUI_XComponentType}. The default value is <b>ARKUI_XCOMPONENT_TYPE_SURFACE</b>. \n
3715      * \n
3716      * Format of the return value {@link ArkUI_AttributeItem}:\n
3717      * .value[0].i32: type {@link ArkUI_XComponentType}. \n
3718      *
3719      */
3720     NODE_XCOMPONENT_TYPE,
3721     /**
3722      * @brief Defines the width and height of the <b><XComponent></b> component.
3723      * This attribute can be set and obtained as required through APIs.
3724      *
3725      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3726      * .value[0].u32: width, in px. \n
3727      * .value[1].u32: height, in px. \n
3728      * \n
3729      * Format of the return value {@link ArkUI_AttributeItem}:\n
3730      * .value[0].u32: width, in px. \n
3731      * .value[1].u32: height, in px. \n
3732      *
3733      */
3734     NODE_XCOMPONENT_SURFACE_SIZE,
3735     /**
3736      * @brief Defines the rectangle information of surface created by the <b><XComponent></b> component.
3737      * This attribute can be set and obtained as required through APIs.
3738      *
3739      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3740      * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
3741      * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
3742      * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
3743      * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
3744      * \n
3745      * Format of the return value {@link ArkUI_AttributeItem}:\n
3746      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3747      * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
3748      * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
3749      * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
3750      * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
3751      * @since 16
3752      */
3753     NODE_XCOMPONENT_SURFACE_RECT,
3754     /**
3755      * @brief Defines whether to enable the AI analyzer for the <b><XComponent></b> component.
3756      * This attribute can be set and obtained as required through APIs.
3757      *
3758      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3759      * value[0].i32: The parameter type is 1 or 0.
3760      * \n
3761      * Format of the return value {@link ArkUI_AttributeItem}:\n
3762      * value[0].i32: The parameter type is 1 or 0.
3763      * @since 16
3764      */
3765     NODE_XCOMPONENT_ENABLE_ANALYZER,
3766 
3767     /**
3768      * @brief Defines whether to display the lunar calendar in the date picker.
3769      * This attribute can be set, reset, and obtained as required through APIs.
3770      *
3771      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3772      * .value[0].i32: whether to display the lunar calendar in the date picker. The default value is <b>false</b>. \n
3773      * \n
3774      * Format of the return value {@link ArkUI_AttributeItem}:\n
3775      * .value[0].i32: whether to display the lunar calendar in the date picker.
3776      *
3777      */
3778     NODE_DATE_PICKER_LUNAR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
3779     /**
3780      * @brief Defines the start date of the date picker.
3781      * This attribute can be set, reset, and obtained as required through APIs.
3782      *
3783      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3784      * .string: date. The default value is <b>"1970-1-1"</b>. \n
3785      * \n
3786      * Format of the return value {@link ArkUI_AttributeItem}:\n
3787      * .string: date. \n
3788      *
3789      */
3790     NODE_DATE_PICKER_START,
3791     /**
3792      * @brief Defines the end date of the date picker.
3793      * This attribute can be set, reset, and obtained as required through APIs.
3794      *
3795      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3796      * .string: date. The default value is <b>"2100-12-31"</b>. \n
3797      * \n
3798      * Format of the return value {@link ArkUI_AttributeItem}:\n
3799      * .string: date. \n
3800      *
3801      */
3802     NODE_DATE_PICKER_END,
3803     /**
3804      * @brief Defines the selected date of the date picker.
3805      * This attribute can be set, reset, and obtained as required through APIs.
3806      *
3807      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3808      * .string: date. The default value is <b>"2024-01-22"</b>. \n
3809      * \n
3810      * Format of the return value {@link ArkUI_AttributeItem}:\n
3811      * .string: date.
3812      *
3813      */
3814     NODE_DATE_PICKER_SELECTED,
3815     /**
3816      * @brief Defines the font color, font size, and font weight for the top and bottom items in the date picker.
3817      * This attribute can be set, reset, and obtained as required through APIs.
3818      *
3819      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3820      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3821      * Parameter 1: font color, in #ARGB format.\n
3822      * Parameter 2: font size, in fp. The value is a number.\n
3823      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3824      * Parameter 4: fonts, separated by commas (,).\n
3825      * Parameter 5: font style. Available options are ("normal", "italic").\n
3826      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3827      * \n
3828      * Format of the return value {@link ArkUI_AttributeItem}:\n
3829      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3830      * Parameter 1: font color, in #ARGB format.\n
3831      * Parameter 2: font size, in fp. The value is a number.\n
3832      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3833      * Parameter 4: fonts, separated by commas (,).\n
3834      * Parameter 5: font style. Available options are ("normal", "italic").\n
3835      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3836      *
3837      */
3838     NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE,
3839     /**
3840      * @brief Defines the font color, font size, and font weight of all items except the top, bottom, and selected
3841      * items in the date picker. This attribute can be set, reset, and obtained as required through APIs.
3842      *
3843      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3844      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3845      * Parameter 1: font color, in #ARGB format.\n
3846      * Parameter 2: font size, in fp. The value is a number.\n
3847      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3848      * Parameter 4: fonts, separated by commas (,).\n
3849      * Parameter 5: font style. Available options are ("normal", "italic").\n
3850      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3851      * \n
3852      * Format of the return value {@link ArkUI_AttributeItem}:\n
3853      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3854      * Parameter 1: font color, in #ARGB format.\n
3855      * Parameter 2: font size, in fp. The value is a number.\n
3856      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3857      * Parameter 4: fonts, separated by commas (,).\n
3858      * Parameter 5: font style. Available options are ("normal", "italic").\n
3859      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3860      *
3861      */
3862     NODE_DATE_PICKER_TEXT_STYLE,
3863     /**
3864      * @brief Defines the font color, font size, and font weight of the selected item in the date picker.
3865      * This attribute can be set, reset, and obtained as required through APIs.
3866      *
3867      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3868      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3869      * Parameter 1: font color, in #ARGB format.\n
3870      * Parameter 2: font size, in fp. The value is a number.\n
3871      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3872      * Parameter 4: fonts, separated by commas (,).\n
3873      * Parameter 5: font style. Available options are ("normal", "italic").\n
3874      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3875      * \n
3876      * Format of the return value {@link ArkUI_AttributeItem}:\n
3877      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3878      * Parameter 1: font color, in #ARGB format.\n
3879      * Parameter 2: font size, in fp. The value is a number.\n
3880      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3881      * Parameter 4: fonts, separated by commas (,).\n
3882      * Parameter 5: font style. Available options are ("normal", "italic").\n
3883      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3884      *
3885      */
3886     NODE_DATE_PICKER_SELECTED_TEXT_STYLE,
3887     /**
3888      * @brief Defines the mode of the date picker.
3889      * This attribute can be set, reset, and obtained as required through APIs.
3890      *
3891      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3892      * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
3893      * \n
3894      * Format of the return value {@link ArkUI_AttributeItem}:\n
3895      * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
3896      *
3897      * @since 18
3898      */
3899     NODE_DATE_PICKER_MODE = 13007,
3900     /**
3901      * @brief Defines whether haptic feedback.
3902      * This attribute can be set, reset, and obtained as required through APIs.
3903      *
3904      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3905      * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
3906      * <b>false</b> means the opposite.\n
3907      * \n
3908      * Format of the return value {@link ArkUI_AttributeItem}:\n
3909      * value[0].i32: whether to feedback.\n
3910      *
3911      * @since 18
3912      */
3913     NODE_DATE_PICKER_ENABLE_HAPTIC_FEEDBACK = 13008,
3914     /**
3915      * @brief Defines the time of the selected item. in the timer picker.
3916      * This attribute can be set, reset, and obtained as required through APIs.
3917      *
3918      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3919      * .string: time. The default value is the current system time. \n
3920      * \n
3921      * Format of the return value {@link ArkUI_AttributeItem}:\n
3922      * .string: time.
3923      *
3924      */
3925 
3926     NODE_TIME_PICKER_SELECTED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
3927     /**
3928      * @brief Defines whether the display time is in 24-hour format.
3929      * This attribute can be set, reset, and obtained as required through APIs.
3930      *
3931      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3932      * .value[0].i32: whether the display time is in 24-hour format. The default value is <b>false</b>. \n
3933      * \n
3934      * Format of the return value {@link ArkUI_AttributeItem}:\n
3935      * .value[0].i32: whether the display time is in 24-hour format.
3936      *
3937      */
3938     NODE_TIME_PICKER_USE_MILITARY_TIME,
3939     /**
3940      * @brief Defines the font color, font size, and font weight for the top and bottom items in the time picker.
3941      * This attribute can be set, reset, and obtained as required through APIs.
3942      *
3943      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3944      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3945      * Parameter 1: font color, in #ARGB format.\n
3946      * Parameter 2: font size, in fp. The value is a number.\n
3947      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3948      * Parameter 4: fonts, separated by commas (,).\n
3949      * Parameter 5: font style. Available options are ("normal", "italic").\n
3950      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3951      * \n
3952      * Format of the return value {@link ArkUI_AttributeItem}:\n
3953      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3954      * Parameter 1: font color, in #ARGB format.\n
3955      * Parameter 2: font size, in fp. The value is a number.\n
3956      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3957      * Parameter 4: fonts, separated by commas (,).\n
3958      * Parameter 5: font style. Available options are ("normal", "italic").\n
3959      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3960      *
3961      */
3962     NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE,
3963     /**
3964      * @brief Defines the font color, font size, and font weight of all items except the top, bottom, and selected items
3965      * in the time picker. This attribute can be set, reset, and obtained as required through APIs.
3966      *
3967      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3968      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3969      * Parameter 1: font color, in #ARGB format.\n
3970      * Parameter 2: font size, in fp. The value is a number.\n
3971      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3972      * Parameter 4: fonts, separated by commas (,).\n
3973      * Parameter 5: font style. Available options are ("normal", "italic").\n
3974      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3975      * \n
3976      * Format of the return value {@link ArkUI_AttributeItem}:\n
3977      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3978      * Parameter 1: font color, in #ARGB format.\n
3979      * Parameter 2: font size, in fp. The value is a number.\n
3980      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3981      * Parameter 4: fonts, separated by commas (,).\n
3982      * Parameter 5: font style. Available options are ("normal", "italic").\n
3983      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3984      *
3985      */
3986     NODE_TIME_PICKER_TEXT_STYLE,
3987     /**
3988      * @brief Defines the font color, font size, and font weight of the selected item in the time picker.
3989      * This attribute can be set, reset, and obtained as required through APIs.
3990      *
3991      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3992      * .string: array of five parameters of the string type, separated by semicolons (;).\n
3993      * Parameter 1: font color, in #ARGB format.\n
3994      * Parameter 2: font size, in fp. The value is a number.\n
3995      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
3996      * Parameter 4: fonts, separated by commas (,).\n
3997      * Parameter 5: font style. Available options are ("normal", "italic").\n
3998      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
3999      * \n
4000      * Format of the return value {@link ArkUI_AttributeItem}:\n
4001      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4002      * Parameter 1: font color, in #ARGB format.\n
4003      * Parameter 2: font size, in fp. The value is a number.\n
4004      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4005      * Parameter 4: fonts, separated by commas (,).\n
4006      * Parameter 5: font style. Available options are ("normal", "italic").\n
4007      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4008      *
4009      */
4010     NODE_TIME_PICKER_SELECTED_TEXT_STYLE,
4011     /**
4012      * @brief Defines the start time of the time picker.
4013      * This attribute can be set, reset, and obtained as required through APIs.
4014      *
4015      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4016      * .string: time. The default value is <b>"00:00:00"</b>.\n
4017      * \n
4018      * Format of the return value {@link ArkUI_AttributeItem}:\n
4019      * .string: time. The default value is <b>"00:00:00"</b>.\n
4020      *
4021      * @since 18
4022      */
4023     NODE_TIME_PICKER_START = 14005,
4024     /**
4025      * @brief Defines the end time of the time picker.
4026      * This attribute can be set, reset, and obtained as required through APIs.
4027      *
4028      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4029      * .string: time. The default value is <b>"23:59:59"</b>.\n
4030      * \n
4031      * Format of the return value {@link ArkUI_AttributeItem}:\n
4032      * .string: time. The default value is <b>"23:59:59"</b>.\n
4033      *
4034      * @since 18
4035      */
4036     NODE_TIME_PICKER_END = 14006,
4037 
4038     /**
4039      * @brief Defines whether the AM/PM option is cascaded with the time in 12-hour mode.
4040      * This attribute can be set, reset, and obtained as required through APIs.
4041      *
4042      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4043      * .value[0].i32: whether to enable cascade. The default value is <b>false</b>.\n
4044      * \n
4045      * Format of the return value {@link ArkUI_AttributeItem}:\n
4046      * .value[0].i32: whether to enable cascade.\n
4047      *
4048      * @since 18
4049      */
4050     NODE_TIME_PICKER_ENABLE_CASCADE = 14007,
4051 
4052     /**
4053      * @brief Defines the data selection range of the text picker.
4054      * This attribute can be set, reset, and obtained as required through APIs.
4055      *
4056      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4057      * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.
4058      * The default value is <b>ARKUI_TEXTPICKER_RANGETYPE_SINGLE</b>. \n
4059      * ?.string: string input, whose format varies by picker type.\n
4060      * 1: single-column picker. The input format is a group of strings separated by semicolons (;).\n
4061      * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
4062      * semicolons (;), and strings within each pair are separated by commas (,). \n
4063      * ?.object: Object input, whose format varies by picker type.\n
4064      * 1: single-column picker with image support. The input structure is {@link ARKUI_TextPickerRangeContent}.\n
4065      * 2: multi-column interconnected picker. The input structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
4066      * \n
4067      * Format of the return value {@link ArkUI_AttributeItem}:\n
4068      * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.\n
4069      * ?.string: string output, whose format varies by picker type.\n
4070      * 1: single-column picker. The output format is a group of strings separated by semicolons (;).\n
4071      * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
4072      * semicolons (;), and strings within each pair are separated by commas (,). \n
4073      * ?.string: Object output, whose format varies by picker type.\n
4074      * 1: single-column picker with image support. The output structure is {@link ARKUI_TextPickerRangeContent}.\n
4075      * 2: multi-column interconnected picker. The output structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
4076      *
4077      */
4078     NODE_TEXT_PICKER_OPTION_RANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,
4079     /**
4080      * @brief Defines the index of the default selected item in the data selection range of the text picker.
4081      * This attribute can be set, reset, and obtained as required through APIs.
4082      *
4083      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4084      * .value[0].u32: index. If there are multiple index values, add them one by one. \n
4085      * \n
4086      * Format of the return value {@link ArkUI_AttributeItem}:\n
4087      * .value[0].u32: index. If there are multiple index values, add them one by one.\n
4088      *
4089      */
4090     NODE_TEXT_PICKER_OPTION_SELECTED,
4091     /**
4092      * @brief Defines the value of the default selected item in the text picker.
4093      * This attribute can be set, reset, and obtained as required through APIs.
4094      *
4095      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4096      * .string: value of the selected item. If there are multiple values, add them one by one and
4097      * separate them with semicolons (;). \n
4098      * \n
4099      * Format of the return value {@link ArkUI_AttributeItem}:\n
4100      * .string: value of the selected item. If there are multiple values, add them one by one and
4101      * separate them with semicolons (;).\n
4102      *
4103      */
4104     NODE_TEXT_PICKER_OPTION_VALUE,
4105     /**
4106      * @brief Defines the font color, font size, and font weight for the top and bottom items in the text picker.
4107      * This attribute can be set, reset, and obtained as required through APIs.
4108      *
4109      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4110      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4111      * Parameter 1: font color, in #ARGB format.\n
4112      * Parameter 2: font size, in fp. The value is a number.\n
4113      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4114      * Parameter 4: fonts, separated by commas (,).\n
4115      * Parameter 5: font style. Available options are ("normal", "italic").\n
4116      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4117      * \n
4118      * Format of the return value {@link ArkUI_AttributeItem}:\n
4119      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4120      * Parameter 1: font color, in #ARGB format.\n
4121      * Parameter 2: font size, in fp. The value is a number.\n
4122      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4123      * Parameter 4: fonts, separated by commas (,).\n
4124      * Parameter 5: font style. Available options are ("normal", "italic").\n
4125      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4126      *
4127      */
4128     NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE,
4129     /**
4130      * @brief Defines the font color, font size, and font weight for all items except the top, bottom, and selected
4131      * items in the text picker. This attribute can be set, reset, and obtained as required through APIs.
4132      *
4133      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4134      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4135      * Parameter 1: font color, in #ARGB format.\n
4136      * Parameter 2: font size, in fp. The value is a number.\n
4137      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4138      * Parameter 4: fonts, separated by commas (,).\n
4139      * Parameter 5: font style. Available options are ("normal", "italic").\n
4140      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4141      * \n
4142      * Format of the return value {@link ArkUI_AttributeItem}:\n
4143      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4144      * Parameter 1: font color, in #ARGB format.\n
4145      * Parameter 2: font size, in fp. The value is a number.\n
4146      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4147      * Parameter 4: fonts, separated by commas (,).\n
4148      * Parameter 5: font style. Available options are ("normal", "italic").\n
4149      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4150      *
4151      */
4152     NODE_TEXT_PICKER_TEXT_STYLE,
4153     /**
4154      * @brief Defines the font color, font size, and font weight for the selected item in the text picker.
4155      * This attribute can be set, reset, and obtained as required through APIs.
4156      *
4157      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4158      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4159      * Parameter 1: font color, in #ARGB format.\n
4160      * Parameter 2: font size, in fp. The value is a number.\n
4161      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4162      * Parameter 4: fonts, separated by commas (,).\n
4163      * Parameter 5: font style. Available options are ("normal", "italic").\n
4164      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4165      * \n
4166      * Format of the return value {@link ArkUI_AttributeItem}:\n
4167      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4168      * Parameter 1: font color, in #ARGB format.\n
4169      * Parameter 2: font size, in fp. The value is a number.\n
4170      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4171      * Parameter 4: fonts, separated by commas (,).\n
4172      * Parameter 5: font style. Available options are ("normal", "italic").\n
4173      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4174      *
4175      */
4176     NODE_TEXT_PICKER_SELECTED_TEXT_STYLE,
4177     /**
4178      * @brief Defines the index of the default selected item in the data selection range of the text picker.
4179      * This attribute can be set, reset, and obtained as required through APIs.
4180      *
4181      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4182      * .value[0...].i32: index of the default item in the data selection range.
4183      *
4184      */
4185     NODE_TEXT_PICKER_SELECTED_INDEX,
4186     /**
4187      * @brief Defines whether to support scroll looping for the text picker.
4188      * This attribute can be set, reset, and obtained as required through APIs.
4189      *
4190      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4191      * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
4192      * <b>false</b> means the opposite.\n \n
4193      * \n
4194      * Format of the return value {@link ArkUI_AttributeItem}:\n
4195      * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the opposite. \n
4196      *
4197      */
4198     NODE_TEXT_PICKER_CAN_LOOP,
4199     /**
4200      * @brief Defines the height of each item in the picker. This attribute can be set, reset, and obtained as required
4201      * through APIs.
4202      *
4203      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4204      * .value[0].f32: item height, in vp. \n
4205      * \n
4206      * Format of the return value {@link ArkUI_AttributeItem}:\n
4207      * value[0].f32: item height, in vp. \n
4208      *
4209      */
4210     NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT,
4211     /**
4212      * @brief Defines whether haptic feedback.
4213      * This attribute can be set, reset, and obtained as required through APIs.
4214      *
4215      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4216      * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
4217      * <b>false</b> means the opposite.\n
4218      * \n
4219      * Format of the return value {@link ArkUI_AttributeItem}:\n
4220      * value[0].i32: whether to feedback.\n
4221      *
4222      * @since 18
4223      */
4224     NODE_TEXT_PICKER_ENABLE_HAPTIC_FEEDBACK = 15010,
4225     /**
4226      * @brief Defines the style of the background in the selected state of the calendar picker.
4227      * This attribute can be set, reset, and obtained as required through APIs.
4228      *
4229      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4230      * .value[0].f32: style of the background in the selected state of the calendar picker.
4231      * The value range is [0, +∞). If the value is <b>0</b>, the background is a rectangle with square corners.
4232      If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to
4233      * or greater than 16, the background is a circle. \n
4234      * \n
4235      * Format of the return value {@link ArkUI_AttributeItem}:\n
4236      * .value[0].f32: style of the background in the selected state of the calendar picker. The value range is [0, +∞).
4237      * If the value is <b>0</b>, the background is a rectangle with square corners.
4238      If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to or
4239      * greater than 16, the background is a circle. \n
4240      *
4241      */
4242     NODE_CALENDAR_PICKER_HINT_RADIUS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
4243     /**
4244      * @brief Defines the date of the selected item in the calendar picker.
4245      * This attribute can be set, reset, and obtained as required through APIs.
4246      *
4247      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4248      * .value[0].u32: year of the selected date. \n
4249      * .value[1].u32: month of the selected date. \n
4250      * .value[2].u32: day of the selected date. \n
4251      * \n
4252      * Format of the return value {@link ArkUI_AttributeItem}:\n
4253      * .value[0].u32: year of the selected date. \n
4254      * .value[1].u32: month of the selected date. \n
4255      * .value[2].u32: day of the selected date. \n
4256      *
4257      */
4258     NODE_CALENDAR_PICKER_SELECTED_DATE,
4259     /**
4260      * @brief Defines how the calendar picker is aligned with the entry component.
4261      * This attribute can be set, reset, and obtained as required through APIs.
4262      *
4263      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4264      * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
4265      * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
4266      * the specified alignment mode. \n
4267      * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
4268      * the specified alignment mode. \n
4269      * \n
4270      * Format of the return value {@link ArkUI_AttributeItem}:\n
4271      * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
4272      * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
4273      * the specified alignment mode. \n
4274      * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
4275      * the specified alignment mode. \n
4276      *
4277      */
4278     NODE_CALENDAR_PICKER_EDGE_ALIGNMENT,
4279     /**
4280      * @brief Defines the font color, font size, and font weight in the entry area of the calendar picker.
4281      *
4282      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4283      * .value[0]?.u32: font color of the entry area. \n
4284      * .value[1]?.f32: font size of the entry area, in fp. \n
4285      * .value[2]?.i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
4286      * \n
4287      * Format of the return value {@link ArkUI_AttributeItem}:\n
4288      * .value[0].u32: font color of the entry area. \n
4289      * .value[1].f32: font size of the entry area, in fp. \n
4290      * .value[2].i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
4291      *
4292      */
4293     NODE_CALENDAR_PICKER_TEXT_STYLE,
4294     /**
4295      * @brief Defines the start date of the calendar picker.
4296      * This attribute can be set, reset, and obtained as required through APIs.
4297      *
4298      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4299      * .string: date. The value like <b>"1970-1-1"</b>. \n
4300      * \n
4301      * Format of the return value {@link ArkUI_AttributeItem}:\n
4302      * .string: date. \n
4303      *
4304      * @since 18
4305      */
4306     NODE_CALENDAR_PICKER_START = 16004,
4307     /**
4308      * @brief Defines the end date of the calendar picker.
4309      * This attribute can be set, reset, and obtained as required through APIs.
4310      *
4311      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4312      * .string: date. The value like <b>"2100-12-31"</b>. \n
4313      * \n
4314      * Format of the return value {@link ArkUI_AttributeItem}:\n
4315      * .string: date. \n
4316      *
4317      * @since 18
4318      */
4319     NODE_CALENDAR_PICKER_END = 16005,
4320     /**
4321      * @brief Defines the color of the slider. This attribute can be set, reset, and obtained as required through APIs.
4322      *
4323      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4324      * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4325      * \n
4326      * Format of the return value {@link ArkUI_AttributeItem}:\n
4327      * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4328      *
4329      */
4330     NODE_SLIDER_BLOCK_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,
4331 
4332     /**
4333      * @brief Defines the background color of the slider. This attribute can be set, reset, and obtained as required
4334      * through APIs.
4335      *
4336      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4337      * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
4338      * \n
4339      * Format of the return value {@link ArkUI_AttributeItem}:\n
4340      * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4341      *
4342      */
4343     NODE_SLIDER_TRACK_COLOR,
4344 
4345     /**
4346      * @brief Defines the color of the selected part of the slider track. This attribute can be set, reset, and obtained
4347      * as required through APIs.
4348      *
4349      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4350      * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
4351      * \n
4352      * Format of the return value {@link ArkUI_AttributeItem}:\n
4353      * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4354      *
4355      */
4356     NODE_SLIDER_SELECTED_COLOR,
4357 
4358     /**
4359      * @brief Sets whether to display the stepping value. This attribute can be set, reset, and obtained as required
4360      * through APIs.
4361      *
4362      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4363      * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
4364      * and <b>0</b> (default value) means the opposite. \n
4365      * \n
4366      * Format of the return value {@link ArkUI_AttributeItem}:\n
4367      * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
4368      * and <b>0</b> (default value) means the opposite. \n
4369      *
4370      */
4371     NODE_SLIDER_SHOW_STEPS,
4372 
4373     /**
4374      * @brief Defines the slider shape, which can be set, reset, and obtained as required through APIs.
4375      *
4376      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4377      * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
4378      * .string?: depending on the shape. Optional. \n
4379      * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
4380      * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
4381      * There are five types:\n
4382      * 1. Rectangle:\n
4383      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4384      * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
4385      * .value[2].f32: width of the rectangle.\n
4386      * .value[3].f32: height of the rectangle.\n
4387      * .value[4].f32: width of the rounded corner of the rectangle.\n
4388      * .value[5].f32: height of the rounded corner of the rectangle.\n
4389      * 2. Circle:\n
4390      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4391      * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
4392      * .value[2].f32: width of the circle.\n
4393      * .value[3].f32: height of the circle.\n
4394      * 3.Ellipse:\n
4395      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4396      * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
4397      * .value[2].f32: width of the ellipse.\n
4398      * .value[3].f32: height of the ellipse;\n
4399      * 4. Path:\n
4400      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4401      * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
4402      * .value[2].f32: width of the path.\n
4403      * .value[3].f32: height of the path.\n
4404      * .string: command for drawing the path.\n
4405      * \n
4406      * Format of the return value {@link ArkUI_AttributeItem}:\n
4407      * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
4408      * .string?: depending on the shape. Optional. \n
4409      * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
4410      * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
4411       * There are five types:\n
4412      * 1. Rectangle:\n
4413      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4414      * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
4415      * .value[2].f32: width of the rectangle.\n
4416      * .value[3].f32: height of the rectangle.\n
4417      * .value[4].f32: width of the rounded corner of the rectangle.\n
4418      * .value[5].f32: height of the rounded corner of the rectangle.\n
4419      * 2. Circle:\n
4420      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4421      * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
4422      * .value[2].f32: width of the circle.\n
4423      * .value[3].f32: height of the circle.\n
4424      * 3.Ellipse:\n
4425      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4426      * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
4427      * .value[2].f32: width of the ellipse.\n
4428      * .value[3].f32: height of the ellipse;\n
4429      * 4. Path:\n
4430      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4431      * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
4432      * .value[2].f32: width of the path.\n
4433      * .value[3].f32: height of the path.\n
4434      * .string: command for drawing the path.\n
4435      *
4436      */
4437     NODE_SLIDER_BLOCK_STYLE,
4438 
4439     /**
4440      * @brief Defines the current value of the slider. This attribute can be set, reset, and obtained as required
4441      * through APIs.
4442      *
4443      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4444      * .value[0].f32: current value. \n
4445      * \n
4446      * Format of the return value {@link ArkUI_AttributeItem}:\n
4447      * .value[0].f32: current value.
4448      *
4449      */
4450     NODE_SLIDER_VALUE,
4451 
4452     /**
4453      * @brief Defines the minimum value of the slider. This attribute can be set, reset, and obtained as required
4454      * through APIs.
4455      *
4456      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4457      * .value[0].f32: minimum value. \n
4458      * \n
4459      * Format of the return value {@link ArkUI_AttributeItem}:\n
4460      * .value[0].f32: minimum value.
4461      *
4462      */
4463     NODE_SLIDER_MIN_VALUE,
4464 
4465     /**
4466      * @brief Defines the maximum value of the slider. This attribute can be set, reset, and obtained as required
4467      * through APIs.
4468      *
4469      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4470      * .value[0].f32: maximum value. \n
4471      * \n
4472      * Format of the return value {@link ArkUI_AttributeItem}:\n
4473      * .value[0].f32: maximum value.
4474      *
4475      */
4476     NODE_SLIDER_MAX_VALUE,
4477 
4478     /**
4479      * @brief Defines the step of the slider. This attribute can be set, reset, and obtained as required through APIs.
4480      *
4481      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4482      * .value[0].f32: step. The value range is [0.01, 100]. \n
4483      * \n
4484      * Format of the return value {@link ArkUI_AttributeItem}:\n
4485      * .value[0].f32: step. The value range is [0.01, 100].
4486      *
4487      */
4488     NODE_SLIDER_STEP,
4489 
4490     /**
4491      * @brief Defines whether the slider moves horizontally or vertically. This attribute can be set, reset, and
4492      * obtained as required through APIs.
4493      *
4494      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4495      * .value[0].i32: whether the slider moves horizontally or vertically.
4496      * The parameter type is {@link ArkUI_SliderDirection}. \n
4497      * \n
4498      * Format of the return value {@link ArkUI_AttributeItem}:\n
4499      * .value[0].i32: whether the slider moves horizontally or vertically.
4500      *
4501      */
4502     NODE_SLIDER_DIRECTION,
4503 
4504     /**
4505      * @brief Defines whether the slider values are reversed. This attribute can be set, reset, and obtained as required
4506      * through APIs.
4507      *
4508      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4509      * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
4510      * reversed, and <b>0</b> means the opposite. \n
4511      * \n
4512      * Format of the return value {@link ArkUI_AttributeItem}:\n
4513      * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
4514      * reversed, and <b>0</b> means the opposite.
4515      *
4516      */
4517     NODE_SLIDER_REVERSE,
4518 
4519     /**
4520      * @brief Defines the style of the slider thumb and track. This attribute can be set, reset, and obtained
4521      * as required through APIs.
4522      *
4523      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4524      * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}. \n
4525      * \n
4526      * Format of the return value {@link ArkUI_AttributeItem}:\n
4527      * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}.
4528      *
4529      */
4530     NODE_SLIDER_STYLE,
4531 
4532     /**
4533      * @brief Sets the track thickness of the slider.
4534      * This attribute can be set, reset, and obtained as required through APIs.
4535      *
4536      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4537      * .value[0].f32: track thickness of the slider, in vp. The default value is 4.0 vp when <b>NODE_SLIDER_STYLE</b>
4538      * is set to <b>ARKUI_SLIDER_STYLE_OUT_SET</b> and 20.0 vp when <b>NODE_SLIDER_STYLE</b> is set to
4539      * <b>ARKUI_SLIDER_STYLE_IN_SET</b>. \n
4540      * \n
4541      * Format of the return value {@link ArkUI_AttributeItem}:\n
4542      * .value[0].f32: track thickness of the slider, in vp. \n
4543      *
4544      */
4545     NODE_SLIDER_TRACK_THICKNESS,
4546 
4547     /**
4548      * @brief Defines whether haptic feedback.
4549      * This attribute can be set, reset, and obtained as required through APIs.
4550      *
4551      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4552      * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
4553      * <b>false</b> means the opposite.\n
4554      * \n
4555      * Format of the return value {@link ArkUI_AttributeItem}:\n
4556      * value[0].i32: whether to feedback.\n
4557      *
4558      * @since 18
4559      */
4560     NODE_SLIDER_ENABLE_HAPTIC_FEEDBACK = 17013,
4561 
4562     /**
4563      * @brief Sets whether the radio button is selected.
4564      * This attribute can be set, reset, and obtained as required through APIs.
4565      *
4566      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4567      * .value[0].i32: whether the radio button is selected. The default value is <b>false</b>.
4568      * Format of the return value {@link ArkUI_AttributeItem}:\n
4569      * .value[0].i32: whether the radio button is selected.
4570      *
4571      */
4572     NODE_RADIO_CHECKED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
4573     /**
4574      * @brief Sets the style of the radio button in selected or deselected state.
4575      * This attribute can be set, reset, and obtained as required through APIs.
4576      *
4577      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4578      * .value[0]?.u32: color of the background when the radio button is selected, in 0xARGB format.
4579      * The default value is <b>0xFF007DFF</b>. \n
4580      * .value[1]?.u32: color of the border when the radio button is deselected, in 0xARGB format.
4581      * The default value is <b>0xFF182431</b>. \n
4582      * .value[2]?.u32: color of the indicator when the radio button is selected, in 0xARGB format.
4583      * The default value is <b>0xFFFFFFFF</b>. \n
4584      * Format of the return value {@link ArkUI_AttributeItem}:\n
4585      * .value[0].u32: color of the background when the radio button is selected, in 0xARGB format.
4586      * The default value is <b>0xFF007DFF</b>. \n
4587      * .value[1].u32: color of the border when the radio button is deselected, in 0xARGB format.
4588      * The default value is <b>0xFF182431</b>. \n
4589      * .value[2].u32: color of the indicator when the radio button is selected, in 0xARGB format.
4590      * The default value is <b>0xFFFFFFFF</b>. \n
4591      *
4592      */
4593     NODE_RADIO_STYLE,
4594     /**
4595      * @brief Sets the current value of the radio button.
4596      * This attribute can be set, reset, and obtained as required through APIs.
4597      *
4598      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4599      * .string: value of the radio button. \n
4600      * \n
4601      * Format of the return value {@link ArkUI_AttributeItem}:\n
4602      * .string: value of the radio button. \n
4603      *
4604      */
4605     NODE_RADIO_VALUE,
4606     /**
4607      * @brief Sets the name of the group to which the radio button belongs. Only one radio button in a given group can
4608      * be selected at a time. This attribute can be set, reset, and obtained as required through APIs.
4609      *
4610      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4611      * .string: name of the group to which the radio button belongs. \n
4612      * \n
4613      * Format of the return value {@link ArkUI_AttributeItem}:\n
4614      * .string: name of the group to which the radio button belongs. \n
4615      *
4616      */
4617     NODE_RADIO_GROUP,
4618 
4619     /**
4620      * @brief Defines the name of the checkboxgroup.
4621      * This attribute can be set, reset, and obtained as required through APIs.
4622      *
4623      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4624      * .string: component name. \n
4625      * \n
4626      * Format of the return value {@link ArkUI_AttributeItem}:\n
4627      * .string: component name. \n
4628      *
4629      * @since 15
4630      */
4631     NODE_CHECKBOX_GROUP_NAME  = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,
4632 
4633     /**
4634      * @brief Defines whether the checkboxgroup is selected.
4635      * This attribute can be set, reset, and obtained as required through APIs.
4636      *
4637      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4638      * .value[0].i32: whether the check box is selected.
4639      * The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b> means the opposite. \n
4640      * \n
4641      * Format of the return value {@link ArkUI_AttributeItem}:\n
4642      * .value[0].i32: The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b> means the opposite. \n
4643      *
4644      * @since 15
4645      */
4646     NODE_CHECKBOX_GROUP_SELECT_ALL = 21001,
4647 
4648     /**
4649      * @brief Defines the color of the checkboxgroup when it is selected.
4650      * This attribute can be set, reset, and obtained as required through APIs.
4651      *
4652      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4653      * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format,
4654      * for example, <b>0xFF1122FF</b>. \n
4655      * \n
4656      * Format of the return value {@link ArkUI_AttributeItem}:\n
4657      * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format,
4658      * for example, <b>0xFF1122FF</b>.
4659      *
4660      * @since 15
4661      */
4662     NODE_CHECKBOX_GROUP_SELECTED_COLOR = 21002,
4663     /**
4664      * @brief Defines the border color of the checkboxgroup when it is not selected.
4665      * This attribute can be set, reset, and obtained as required through APIs.
4666      *
4667      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4668      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
4669      * \n
4670      * Format of the return value {@link ArkUI_AttributeItem}:\n
4671      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4672      *
4673      * @since 15
4674      */
4675     NODE_CHECKBOX_GROUP_UNSELECTED_COLOR = 21003,
4676 
4677     /**
4678      * @brief Defines the internal icon style of the checkboxgroup.
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].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
4683      * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
4684      * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
4685      * \n
4686      * Format of the return value {@link ArkUI_AttributeItem}:\n
4687      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
4688      * .value[1].f32: size of the internal mark, in vp. \n
4689      * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
4690      *
4691      * @since 15
4692      */
4693     NODE_CHECKBOX_GROUP_MARK = 21004,
4694 
4695     /**
4696      * @brief Defines the shape of the checkboxgroup.
4697      * This attribute can be set, reset, and obtained as required through APIs.
4698      *
4699      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4700      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
4701      * \n
4702      * Format of the return value {@link ArkUI_AttributeItem}:\n
4703      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
4704      *
4705      * @since 15
4706      */
4707     NODE_CHECKBOX_GROUP_SHAPE = 21005,
4708 
4709     /**
4710      * @brief Defines the alignment mode of the child components in the container. This attribute can be set, reset,
4711      * and obtained as required through APIs.
4712      *
4713      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4714      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
4715      * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
4716      * \n
4717      * Format of the return value {@link ArkUI_AttributeItem}:\n
4718      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
4719      *
4720      */
4721     NODE_STACK_ALIGN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_STACK,
4722 
4723     /**
4724      * @brief Defines the scrollbar status. This attribute can be set, reset, and obtained as required through APIs.
4725      *
4726      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4727      * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. The default value is
4728      * <b>ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO</b>. \n
4729      * \n
4730      * Format of the return value {@link ArkUI_AttributeItem}:\n
4731      * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. \n
4732      *
4733      */
4734     NODE_SCROLL_BAR_DISPLAY_MODE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
4735     /**
4736      * @brief Defines the width of the scrollbar. This attribute can be set, reset, and obtained as required
4737      * through APIs.
4738      *
4739      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4740      * .value[0].f32: width of the scrollbar, in vp. The default value is <b>4</b>. \n
4741      * \n
4742      * Format of the return value {@link ArkUI_AttributeItem}:\n
4743      * .value[0].f32: width of the scrollbar, in vp. \n
4744      *
4745      */
4746     NODE_SCROLL_BAR_WIDTH,
4747     /**
4748      * @brief Defines the color of the scrollbar. This attribute can be set, reset, and obtained as required
4749      * through APIs.
4750      *
4751      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4752      * .data[0].u32: color of the scrollbar, in 0xARGB format. \n
4753      * \n
4754      * Format of the return value {@link ArkUI_AttributeItem}:\n
4755      * .data[0].u32: color of the scrollbar, in 0xARGB format. \n
4756      *
4757      */
4758     NODE_SCROLL_BAR_COLOR,
4759     /**
4760      * @brief Defines the scroll direction. This attribute can be set, reset, and obtained as required through APIs.
4761      *
4762      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4763      * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}.
4764      * The default value is <b>ARKUI_SCROLL_DIRECTION_VERTICAL</b>. \n
4765      * \n
4766      * Format of the return value {@link ArkUI_AttributeItem}:\n
4767      * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}. \n
4768      *
4769      */
4770     NODE_SCROLL_SCROLL_DIRECTION,
4771     /**
4772      * @brief Defines the effect used at the edges of the component when the boundary of the scrollable content is
4773      * reached. This attribute can be set, reset, and obtained as required through APIs.
4774      *
4775      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4776      * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
4777      * The parameter type is {@link ArkUI_EdgeEffect}. The default value is <b>ARKUI_EDGE_EFFECT_NONE</b>.\n
4778      * .value[1]?.i32: whether to enable the scroll effect when the component content size is smaller than the
4779      * component itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the
4780      * opposite. The default value is <b>1</b>. \n
4781      * \n
4782      * Format of the return value {@link ArkUI_AttributeItem}:\n
4783      * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
4784      * The parameter type is {@link ArkUI_EdgeEffect}. \n
4785      * .value[1].i32: whether to enable the scroll effect when the component content size is smaller than the component
4786      * itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the opposite. \n
4787      *
4788      */
4789     NODE_SCROLL_EDGE_EFFECT,
4790     /**
4791      * @brief Defines whether to support scroll gestures. When this attribute is set to <b>false</b>, scrolling by
4792      * finger or mouse is not supported, but the scroll controller API is not affected.
4793      *
4794      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4795      * .value[0].i32: whether to support scroll gestures. The default value is <b>true</b>. \n
4796      * \n
4797      * Format of the return value {@link ArkUI_AttributeItem}:\n
4798      * .value[0].i32: whether to support scroll gestures. \n
4799      *
4800      */
4801     NODE_SCROLL_ENABLE_SCROLL_INTERACTION,
4802     /**
4803      * @brief Defines the friction coefficient. It applies only to gestures in the scrolling area, and it affects only
4804      * indirectly the scroll chaining during the inertial scrolling process.
4805      *
4806      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4807      * .value[0].f32: friction coefficient. The default value is <b>0.6</b> for non-wearable devices and <b>0.9</b>
4808      * for wearable devices. \n
4809      * \n
4810      * Format of the return value {@link ArkUI_AttributeItem}:\n
4811      * .value[0].f32: friction coefficient.
4812      *
4813      */
4814     NODE_SCROLL_FRICTION,
4815     /**
4816      * @brief Defines the scroll snapping mode. This attribute can be set, reset, and obtained as required through APIs.
4817      *
4818      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4819      * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
4820      * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
4821      * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
4822      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
4823      * start edge and the first snap point. The default value is <b>true</b>. It is valid only when there are multiple
4824      * snap points.\n
4825      * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
4826      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
4827      * end edge and the last snap point. The default value is <b>true</b>. It is valid only when there are multiple
4828      * snap points.\n
4829      * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an
4830      * edge to which the <b><Scroll></b> component can scroll.  \n
4831      * \n
4832      * Format of the return value {@link ArkUI_AttributeItem}:\n
4833      * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
4834      * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
4835      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
4836      * start edge and the first snap point.\n
4837      * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
4838      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
4839      * end edge and the last snap point.\n
4840      * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an edge
4841      * to which the <b><Scroll></b> component can scroll. \n
4842      *
4843      */
4844     NODE_SCROLL_SNAP,
4845 
4846     /**
4847      * @brief Defines the nested scrolling options. This attribute can be set, reset, and obtained as required
4848      * through APIs.
4849      *
4850      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4851      * .value[0].i32: nested scrolling option when the component scrolls forward.
4852      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
4853      * .value[1].i32: nested scrolling option when the component scrolls backward.
4854      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
4855      * \n
4856      * Format of the return value {@link ArkUI_AttributeItem}:\n
4857      * .value[0].i32: nested scrolling option when the component scrolls forward.
4858      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
4859      * .value[1].i32: nested scrolling option when the component scrolls backward.
4860      * The parameter type is {@link ArkUI_ScrollNestedMode}.
4861      *
4862      */
4863     NODE_SCROLL_NESTED_SCROLL,
4864     /**
4865      * @brief Defines the specified position to scroll to. This attribute can be set, reset, and obtained as required
4866      * through APIs.
4867      *
4868      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4869      * .value[0].f32: horizontal scrolling offset, in vp. \n
4870      * .value[1].f32: vertical scrolling offset, in vp. \n
4871      * .value[2]?.i32: scrolling duration, in milliseconds. Optional. \n
4872      * .value[3]?.i32: scrolling curve. Optional. The parameter type is {@link ArkUI_AnimationCurve}.
4873      * The default value is <b>ARKUI_CURVE_EASE</b>. \n
4874      * .value[4]?.i32: whether to enable the default spring animation. Optional. The default value <b>0</b> means not
4875      * to enable the default spring animation. \n
4876      * \n
4877      * Format of the return value {@link ArkUI_AttributeItem}:\n
4878      * .value[0].f32: horizontal scrolling offset, in vp. \n
4879      * .value[1].f32: vertical scrolling offset, in vp. \n
4880      *
4881      */
4882     NODE_SCROLL_OFFSET,
4883 
4884     /**
4885      * @brief Defines the edge position to scroll to. This attribute can be set and obtained as required through APIs.
4886      *
4887      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4888      * .value[0].i32: edge position to scroll to. The parameter type is {@link ArkUI_ScrollEdge}. \n
4889      * \n
4890      * Format of the return value {@link ArkUI_AttributeItem}:\n
4891      * .value[0].i32: whether the container at the edge position. The value <b>-1</b> means that the container is not
4892      * at the edge position. If the container is at the edge position, the parameter type is {@link ArkUI_ScrollEdge}.
4893      *
4894      */
4895     NODE_SCROLL_EDGE,
4896 
4897     /**
4898      * @brief Defines whether to enable the swipe-to-turn-pages feature. This attribute can be set, reset, and obtained
4899      * as required through APIs.
4900      *
4901      * If both <b>enablePaging</b> and <b>scrollSnap</b> are set, <b>scrollSnap</b> takes effect, but
4902      * <b>enablePaging</b> does not. \n
4903      * \n
4904      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4905      * .value[0].i32: whether to enable the swipe-to-turn-pages feature. The default value is <b>false</b>. \n
4906      * \n
4907      * Format of the return value {@link ArkUI_AttributeItem}:\n
4908      * .value[0].i32: whether to enable the swipe-to-turn-pages feature. \n
4909      *
4910      */
4911     NODE_SCROLL_ENABLE_PAGING,
4912 
4913     /**
4914      * @brief Scroll to the next or previous page.
4915      *
4916      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4917      * .value[0].i32 Indicates whether to scroll to next page. Value 0 indicates scroll to next page and value 1
4918      * indicates scroll to previous page. \n
4919      * .value[1]?.i32 Indicates whether to enable animation. Value 1 indicates enable and 0 indicates disable. \n
4920      *
4921      */
4922     NODE_SCROLL_PAGE,
4923 
4924     /**
4925      * @brief Scroll a specified distance.
4926      *
4927      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4928      * .value[0].f32:Horizontal scrolling distance in vp; \n
4929      * .value[1].f32: Vertical scrolling distance in vp; \n
4930      *
4931      */
4932     NODE_SCROLL_BY,
4933 
4934     /**
4935      * @brief Performs inertial scrolling based on the initial velocity passed in.
4936      *
4937      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4938      * .value[0].f32: Initial velocity of inertial scrolling. Unit: vp/s. If the value specified is 0, it is
4939      * considered as invalid, and the scrolling for this instance will not take effect. If the value is positive,
4940      * the scroll will move downward; if the value is negative, the scroll will move upward. \n
4941      *
4942      */
4943     NODE_SCROLL_FLING,
4944 
4945     /**
4946     * @brief Sets the fading effect for the edges of scrollable components.
4947     *
4948     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
4949     * .value[0].i32: whether to enable the fading effect on edges. The value 0 means to disable the fading effect, and 1 means to enable it.
4950     * .value[1]?.f32: length of the fading effect on edges, in vp. Default value: 32.
4951     *
4952     * Format of the return value {@link ArkUI_AttributeItem}:
4953     * .value[0].i32: whether the fading effect on edges is enabled. The value 0 means that the fading effect is disabled, and 1 means that it is enabled.
4954     * .value[1].f32: length of the fading effect on edges, in vp.
4955     *
4956     * @since 14
4957     */
4958     NODE_SCROLL_FADING_EDGE,
4959 
4960     /**
4961      * @brief Obtains the total size of all child components when fully expanded in the scrollable component.
4962      *
4963      * Format of the return value {@link ArkUI_AttributeItem}:\n
4964      * .value[0].f32: total width of all child components when fully expanded in the scrollable component.
4965      *                The default unit is vp. \n
4966      * .value[1].f32: total height of all child components when fully expanded in the scrollable component.
4967      *                The default unit is vp. \n
4968      *
4969      * @since 14
4970      */
4971     NODE_SCROLL_SIZE,
4972 
4973 	/**
4974      * @brief Sets the offset from the start of the scrollable components content.
4975      *
4976      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4977      * .value[0].f32: offset from the start of the content, in vp. \n
4978      * \n
4979      * Format of the return value {@link ArkUI_AttributeItem}:\n
4980      * .value[0].f32: offset from the start of the content, in vp. \n
4981      *
4982      * @since 15
4983      */
4984     NODE_SCROLL_CONTENT_START_OFFSET,
4985 
4986     /**
4987      * @brief Sets the offset from the end of the scrollable components content.
4988      *
4989      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4990      * .value[0].f32: offset from the end of the content, in vp. \n
4991      * \n
4992      * Format of the return value {@link ArkUI_AttributeItem}:\n
4993      * .value[0].f32: offset from the end of the content, in vp. \n
4994      *
4995      * @since 15
4996      */
4997     NODE_SCROLL_CONTENT_END_OFFSET,
4998 
4999     /**
5000      * @brief Defines the maximum starting fling speed of the scrollable when the fling animation starts.
5001      * This attribute can be set, reset, and obtained as required through APIs.
5002      *
5003      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
5004      * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
5005      * \n
5006      * Format of the return value {@link ArkUI_AttributeItem}: \n
5007      * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
5008      *
5009      * @since 16
5010      */
5011     NODE_SCROLL_FLING_SPEED_LIMIT,
5012 
5013     /**
5014      * @brief Sets the content clipping area for this scrollable component.
5015      * This attribute can be set, reset, and obtained as required through APIs.
5016      *
5017      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5018      * .value[0].i32: content clipping mode. The parameter type is {@link ArkUI_ContentClipMode}. \n
5019      * \n
5020      * Format of the return value {@link ArkUI_AttributeItem}:\n
5021      * .value[0].i32: content clipping mode. The parameter type is {@link ArkUI_ContentClipMode}. \n
5022      *
5023      * @since 16
5024      */
5025     NODE_SCROLL_CLIP_CONTENT,
5026 
5027     /**
5028      * @brief Defines whether the scrollable scrolls back to top when status bar is clicked.
5029      * This attribute can be set, reset, and obtained as required through APIs.
5030      *
5031      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5032      * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked. \n
5033      * The value <b>1</b> means to scroll back to top, and <b>0</b> means the opposite.
5034      * The default value is <b>0</b>. \n
5035      * \n
5036      * Format of the return value {@link ArkUI_AttributeItem}: \n
5037      * .value[0]i.32: whether the scrollable scrolls back to top when status bar is clicked. \n
5038      *
5039      * @since 15
5040      */
5041     NODE_SCROLL_BACK_TO_TOP = 1002021,
5042 
5043     /**
5044      * @brief Defines the direction in which the list items are arranged. This attribute can be set, reset, and
5045      * obtained as required through APIs.
5046      *
5047      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5048      * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}.
5049      * The default value is <b>ARKUI_AXIS_VERTICAL</b>. \n
5050      * \n
5051      * Format of the return value {@link ArkUI_AttributeItem}:\n
5052      * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}. \n
5053      *
5054      */
5055     NODE_LIST_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
5056     /**
5057      * @brief Defines whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
5058      * component. This attribute can be set, reset, and obtained as required through APIs.
5059      *
5060      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5061      * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
5062      * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
5063      * {@link ArkUI_StickyStyle}. The default value is <b>ARKUI_STICKY_STYLE_NONE</b>. \n
5064      * \n
5065      * Format of the return value {@link ArkUI_AttributeItem}:\n
5066      * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
5067      * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
5068      * {@link ArkUI_StickyStyle}.
5069      *
5070      */
5071     NODE_LIST_STICKY,
5072     /**
5073      * @brief Defines the spacing between list items. This attribute can be set, reset, and obtained as required
5074      * through APIs.
5075      *
5076      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5077      * .value[0].f32: spacing between list items along the main axis. The default value is <b>0</b>. \n
5078      * \n
5079      * Format of the return value {@link ArkUI_AttributeItem}:\n
5080      * .value[0].f32: spacing between list items along the main axis. \n
5081      *
5082      */
5083     NODE_LIST_SPACE,
5084 
5085     /**
5086     * @brief Defines the list adapter. The attribute can be set, reset, and obtained as required through APIs.
5087     *
5088     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5089     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
5090     * \n
5091     * Format of the return value {@link ArkUI_AttributeItem}:\n
5092     * .object: {@link ArkUI_NodeAdapter} object. \n
5093     */
5094     NODE_LIST_NODE_ADAPTER,
5095 
5096     /**
5097      * @brief Sets the number of cached items in the list adapter.
5098      * This attribute can be set, reset, and obtained as required through APIs.
5099      *
5100      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5101      * .value[0].i32: number of cached items in the list adapter. \n
5102      * .value[1]?.i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>0</b> means
5103      * to show cached items. The default value is <b>0</b>. This parameter is supported since API version 15. \n
5104      * \n
5105      * Format of the return value {@link ArkUI_AttributeItem}:\n
5106      * .value[0].i32: number of cached items in the list adapter. \n
5107      * .value[1].i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>0</b> means
5108      * to show cached items. This parameter is supported since API version 15. \n
5109      *
5110      */
5111     NODE_LIST_CACHED_COUNT,
5112 
5113     /**
5114      * @brief Scroll to the specified index.
5115      *
5116      * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
5117      * lead to performance issues when loading a large number of items.\n
5118      * \n
5119      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5120      * .value[0].i32:The index value of the target element to be slid to in the current container.\n
5121      * .value[1]?.i32:Set whether there is an action when sliding to the index value of a list item in the list, where
5122      * 1 indicates an action and 0 indicates no action. Default value: 0.\n
5123      * .value[2]?.i32:Specify the alignment of the sliding element with the current container,The parameter type is
5124      * {@link ArkUI_ScrollAlignment}, default value is ARKUI_SCROLL_ALIGNMENT_START. \n
5125      * .value[3]?.f32: extra offset, in vp. The default value is <b>0</b>.
5126      * This parameter is supported since API version 15. \n
5127      *
5128      */
5129     NODE_LIST_SCROLL_TO_INDEX,
5130 
5131     /**
5132      * @brief 设置List交叉轴方向宽度大于ListItem交叉轴宽度 * lanes时,
5133      * ListItem在List交叉轴方向的布局方式,支持属性设置,属性重置和属性获取接口。
5134      *
5135      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
5136      * .value[0].i32:交叉轴方向的布局方式。参数类型{@link ArkUI_ListItemAlignment} \n
5137      * \n
5138      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
5139      * .value[0].i32:交叉轴方向的布局方式。参数类型{@link ArkUI_ListItemAlignment}  \n
5140      */
5141     NODE_LIST_ALIGN_LIST_ITEM,
5142 
5143     /**
5144      * @brief Set the default spindle size for the List subcomponent.
5145      *
5146      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5147      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
5148      * \n
5149      * Format of the return value {@link ArkUI_AttributeItem}:\n
5150      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
5151      */
5152     NODE_LIST_CHILDREN_MAIN_SIZE = 1003007,
5153     /**
5154      * @brief 设置当前List初次加载时视口起始位置显示的item的索引值,支持属性设置,属性重置和属性获取接口。
5155      *
5156      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
5157      * .value[0].i32: 当前List初次加载时视口起始位置显示的item的索引值。 \n
5158      * \n
5159      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
5160      * .value[0].i32: 当前List初次加载时视口起始位置显示的item的索引值,默认值:0。 \n
5161      */
5162     NODE_LIST_INITIAL_INDEX = 1003008,
5163     /**
5164      * @brief sets the ListItem splitter style. By default, there is no splitter.
5165      * This attribute can be set, reset, and obtained as required through APIs.
5166      *
5167      * Attribute setting method parameter {@link ArkUI_AttributeItem} Format:\n
5168      *.value[0].u32: divider color, type 0xargb; \n
5169      *.value[1].f32: dividing line width; \n
5170      *.value[2].f32: the distance between the divider and the beginning of the side of the list, unit vp; \n
5171      *.value[3].f32: the distance between the divider and the end of the side of the list (unit: vp). \n
5172      * \n
5173      * Attribute fetch method return value {@link ArkUI_AttributeItem} format:\n
5174      *.value[0].u32: divider color, type 0xargb; \n
5175      *.value[1].f32: dividing line width; \n
5176      *.value[2].f32: the distance between the divider and the beginning of the side of the list, unit vp; \n
5177      *.value[3].f32: the distance between the divider and the end of the side of the list (unit: vp). \n
5178      *
5179      */
5180     NODE_LIST_DIVIDER = 1003009,
5181 
5182     /**
5183      * @brief Scrolls to the item with the specified index in the specified list item group.
5184      *
5185      * When <b>smooth</b> is set to <b>true</b>, all passed items are loaded and counted in layout calculation.
5186      * This may result in performance issues if a large number of items are involved. \n
5187      * \n
5188      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5189      * .value[0].i32: index of the target list item group in the current list. \n
5190      *.value[1].i32: index of the target list item in the list item group. \n
5191      * .value[2]?.i32: whether to enable the smooth animation for scrolling to the item with the specified index.
5192      * The value <b>1</b> means to enable the animation, and <b>0</b> means the opposite.
5193      * The default value is <b>0</b>. \n
5194      * .value[3]?.i32: how the item to scroll to is aligned with the container. The parameter type is
5195      * {@link ArkUI_ScrollAlignment}. The default value is <b>ARKUI_SCROLL_ALIGNMENT_START</b>. \n
5196      *
5197      * @since 15
5198      */
5199     NODE_LIST_SCROLL_TO_INDEX_IN_GROUP = 1003010,
5200 
5201     /**
5202      * @brief Sets the number of lanes in the list.
5203      * This attribute can be set, reset, and obtained as required through APIs.
5204      *
5205      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5206      * .value[0].u32: number of lanes in the list. If the maximum and minimum lane widths are set, setting the number
5207      * of lanes will not take effect. \n
5208      * .value[1]?.f32: minimum lane width, in vp. \n
5209      * .value[2]?.f32: maximum column width, in vp. \n
5210      * .value[3]?.f32: lane spacing, in vp. \n
5211      * \n
5212      * Format of the return value {@link ArkUI_AttributeItem}:\n
5213      * .value[0].u32: number of lanes in the list. \n
5214      * .value[1].f32: minimum lane width, in vp. \n
5215      * .value[2].f32: maximum column width, in vp. \n
5216      * .value[3].f32: lane spacing, in vp. \n \n
5217      *
5218      * @since 15
5219      */
5220     NODE_LIST_LANES = 1003011,
5221 
5222     /**
5223      * @brief Sets the list snap alignment mode.
5224      *
5225      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5226      * .value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
5227      * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
5228      * \n
5229      * Format of the return value {@link ArkUI_AttributeItem}:\n
5230      *.value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
5231      *
5232      * @since 15
5233      */
5234     NODE_LIST_SCROLL_SNAP_ALIGN = 1003012,
5235 
5236     /**
5237      * @brief Sets whether to maintain the visible content's position when data is inserted or deleted outside the
5238      * display area of the <b>List</b> component.
5239      *
5240      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5241      * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
5242      * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
5243      * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
5244      * \n
5245      * Format of the return value {@link ArkUI_AttributeItem}:\n
5246      * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
5247      * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
5248      * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
5249      *
5250      * @since 15
5251      */
5252     NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION = 1003013,
5253 
5254     /**
5255      * @brief Sets the layout of the List component from the end.
5256      *
5257      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5258      * .value[0].i32: whether the <b>List</b> is layout from the end.
5259      * The value <b>0</b> means not to layout from the end,
5260      * and <b>1</b> means the opposite. The default value is <b>0</b>. \n
5261      * \n
5262      * Format of the return value {@link ArkUI_AttributeItem}:\n
5263      * .value[0].i32: whether the <b>List</b> is layout from the end.
5264      * The value <b>0</b> means not to layout from the end, and <b>1</b> means the opposite.
5265      * The default value is <b>0</b>. \n
5266      *
5267      * @since 16
5268      */
5269     NODE_LIST_STACK_FROM_END = 1003014,
5270 
5271     /**
5272      * @brief Defines whether to enable loop playback for the swiper. This attribute can be set, reset, and obtained
5273      * as required through APIs.
5274      *
5275      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5276      * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
5277      * means the opposite. The default value is <b>1/b>. \n
5278      * \n
5279      * Format of the return value {@link ArkUI_AttributeItem}:\n
5280      * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
5281      * means the opposite. The default value is <b>1</b>. \n
5282      *
5283      */
5284     NODE_SWIPER_LOOP = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
5285     /**
5286      * @brief Defines whether to enable automatic playback for child component switching in the swiper.
5287      * This attribute can be set, reset, and obtained as required through APIs.
5288      *
5289      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5290      * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b>
5291      * means to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5292      * \n
5293      * .value[1]?.i32: whether to stop automatic playback when the user touches the screen. The value <b>1</b> means
5294      * to stop automatic playback, and <b>0</b> means the opposite. The default value is <b>1</b>. This parameter is
5295      * supported since API version 16. \n
5296      * \n
5297      * Format of the return value {@link ArkUI_AttributeItem}:\n
5298      * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b> means
5299      * to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5300      * .value[1].i32: whether to stop automatic playback when the user touches the screen. The value <b>1</b> means to
5301      * stop automatic playback, and <b>0</b> means the opposite. This parameter is supported since API version 16. \n
5302      *
5303      */
5304     NODE_SWIPER_AUTO_PLAY,
5305     /**
5306      * @brief Defines whether to enable the navigation point indicator for the swiper. This attribute can be set,
5307      * reset, and obtained as required through APIs.
5308      *
5309      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5310      * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
5311      * navigation point indicator, and <b>0</b> means the opposite. The default value is <b>1</b>. \n
5312      * \n
5313      * Format of the return value {@link ArkUI_AttributeItem}:\n
5314      * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
5315      * navigation point indicator, and <b>0</b> means the opposite. The default value is <b>1</b>. \n
5316      *
5317      */
5318     NODE_SWIPER_SHOW_INDICATOR,
5319     /**
5320      * @brief Defines the interval for automatic playback. This attribute can be set, reset, and obtained as required
5321      * through APIs.
5322      *
5323      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5324      * .value[0].f32: interval for automatic playback, in milliseconds. \n
5325      * \n
5326      * Format of the return value {@link ArkUI_AttributeItem}:\n
5327      * .value[0].f32: interval for automatic playback, in milliseconds. \n
5328      *
5329      */
5330     NODE_SWIPER_INTERVAL,
5331     /**
5332      * @brief Defines whether vertical swiping is used for the swiper. This attribute can be set, reset, and obtained
5333      * as required through APIs.
5334      *
5335      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5336      * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
5337      * <b>0</b> means the opposite. The default value is <b>0</b>. \n
5338      * \n
5339      * Format of the return value {@link ArkUI_AttributeItem}:\n
5340      * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
5341      * <b>0</b> means the opposite. The default value is <b>0</b>. \n
5342      *
5343      */
5344     NODE_SWIPER_VERTICAL,
5345 
5346     /**
5347      * @brief Defines the duration of the animation for switching child components. This attribute can be set, reset,
5348      * and obtained as required through APIs.
5349      *
5350      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5351      * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
5352      * <b>400</b>. \n
5353      * \n
5354      * Format of the return value {@link ArkUI_AttributeItem}:\n
5355      * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
5356      * <b>400</b>. \n
5357      *
5358      */
5359     NODE_SWIPER_DURATION,
5360 
5361     /**
5362      * @brief Defines the animation curve for the swiper. This attribute can be set, reset, and obtained as required
5363      * through APIs.
5364      *
5365      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5366      * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
5367      * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
5368      * \n
5369      * Format of the return value {@link ArkUI_AttributeItem}:\n
5370      * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
5371      * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
5372      *
5373      */
5374     NODE_SWIPER_CURVE,
5375 
5376     /**
5377      * @brief Defines the spacing between child components in the swiper.
5378      * This attribute can be set, reset, and obtained as required through APIs.
5379      *
5380      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5381      * .value[0].f32: spacing between child components. \n
5382      * \n
5383      * Format of the return value {@link ArkUI_AttributeItem}:\n
5384      * .value[0].f32: spacing between child components. \n
5385      *
5386      */
5387     NODE_SWIPER_ITEM_SPACE,
5388 
5389     /**
5390      * @brief Defines the index of the child component currently displayed in the swiper.
5391      * This attribute can be set, reset, and obtained as required through APIs.
5392      *
5393      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5394      * .value[0].i32: index value of the child component. \n
5395      * .value[1]?.i32: animation mode, the parameter type is {@linkArkUI_SwiperAnimationMode}. \n
5396      * The default value is ARKUI_SWIPER_NO_ANIMATION. This parameeter isvalidonlyforthecurrentcall. \n
5397      * This parameter is supported since API version 16. \n
5398      * \n
5399      * Format of the return value {@link ArkUI_AttributeItem}:\n
5400      * .value[0].i32: index value of the child component. \n
5401      * .value[1]?.i32: animation mode, the parameter type is {@linkArkUI_SwiperAnimationMode}. \n
5402      * The default value is ARKUI_SWIPER_NO_ANIMATION. This parameeter isvalidonlyforthecurrentcall. \n
5403      * This parameter is supported since API version 16. \n
5404      *
5405      */
5406     NODE_SWIPER_INDEX,
5407 
5408     /**
5409     * @brief Defines the number of elements to display per page.
5410     * This attribute can be set, reset, and obtained as required through APIs.
5411     *
5412     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5413     * .value[0].i32: number of elements to display per page. \n
5414     * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
5415     * and <b>1</b> means to turn pages by group. This parameter is supported since API version 16. \n
5416     * .string?: this parameter can only be set to 'auto'. When 'auto' is set, the value[] parameters are ignored.
5417     * This parameter is supported since API version 16. \n
5418     * \n
5419     * Format of the return value {@link ArkUI_AttributeItem}:\n
5420     * .value[0].i32: number of elements to display per page. \n
5421     * .value[1].i32: whether to turn pages by group. This parameter is supported since API version 16. \n
5422     * .string: 'auto' or empty string.
5423     *
5424     */
5425     NODE_SWIPER_DISPLAY_COUNT,
5426 
5427     /**
5428      * @brief Defines whether to disable the swipe feature.
5429      * This attribute can be set, reset, and obtained as required through APIs.
5430      *
5431      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5432      * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable
5433      * the swipe feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5434      * \n
5435      * Format of the return value {@link ArkUI_AttributeItem}:\n
5436      * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable the swipe
5437      * feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5438      *
5439      */
5440     NODE_SWIPER_DISABLE_SWIPE,
5441 
5442     /**
5443     * @brief Defines whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
5444     * This attribute can be set, reset, and obtained as required through APIs.
5445     *
5446     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5447     * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
5448     * The parameter type is {@link ArkUI_SwiperArrow}.\n
5449     * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
5450     * .?object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
5451     * This parameter is supported since API version 16. \n
5452     * \n
5453     * Format of the return value {@link ArkUI_AttributeItem}:\n
5454     * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
5455     * The parameter type is {@link ArkUI_SwiperArrow}.\n
5456     * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
5457     * .object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
5458     * This parameter is supported since API version 16. \n
5459     *
5460     */
5461     NODE_SWIPER_SHOW_DISPLAY_ARROW,
5462 
5463     /**
5464      * @brief Defines the effect used at the edges of the swiper when the boundary of the scrollable content is reached.
5465      * This attribute can be set, reset, and obtained as required through APIs.
5466      *
5467      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5468      * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
5469      * The parameter type is {@link ArkUI_EdgeEffect}.\n
5470      * The default value is <b>ARKUI_EDGE_EFFECT_SPRING</b>. \n
5471      * \n
5472      * Format of the return value {@link ArkUI_AttributeItem}:\n
5473      * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
5474      * The parameter type is {@link ArkUI_EdgeEffect}. \n
5475      *
5476      */
5477     NODE_SWIPER_EDGE_EFFECT_MODE,
5478 
5479     /**
5480     * @brief Defines the swiper adapter. The attribute can be set, reset, and obtained as required through APIs.
5481     *
5482     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5483     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
5484     * \n
5485     * Format of the return value {@link ArkUI_AttributeItem}:\n
5486     * .object: {@link ArkUI_NodeAdapter} object. \n
5487     */
5488     NODE_SWIPER_NODE_ADAPTER,
5489 
5490     /**
5491     * @brief Sets the number of cached items in the swiper adapter.
5492     * This attribute can be set, reset, and obtained as required through APIs.
5493     *
5494     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5495     * .value[0].i32: number of cached items in the swiper adapter. \n
5496     * \n
5497     * Format of the return value {@link ArkUI_AttributeItem}:\n
5498     * .value[0].f32: number of cached items in the swiper adapter. \n
5499     * .value[1]?.i32: whether the cached items will be displayed. \n
5500     * The value <b>0</b> indicates that cached items will not be displayed, \n
5501     * and <b>1</b> indicates that cached nodes will be displayed. The default value is <b>0</b>. \n
5502     * This parameter is supported from API version 16. \n
5503     * \n
5504     * Format of the return value {@link ArkUI_AttributeItem}:\n
5505     * .value[0].i32: number of cached items in the swiper adapter. \n
5506     * .value[1].i32: whether the cached items will be displayed. This parameter is supported from API version 16. \n
5507     */
5508     NODE_SWIPER_CACHED_COUNT,
5509 
5510     /**
5511      * @brief Defines the front margin of the wiper.
5512      * The attribute can be set, reset, and obtained as required through APIs.
5513      *
5514      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5515      * .value[0].f32: the front margin. The unit is vp. The default value is <b>0.0</b>\n
5516      * .value[1]?.i32: whether to ignore blanks, the default value is 0.
5517      * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
5518      * Format of the return value {@link ArkUI_AttributeItem}:\n
5519      * .value[0].f32: the front margin, the unit is vp. \n
5520      * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
5521      * the opposite. \n
5522      */
5523     NODE_SWIPER_PREV_MARGIN,
5524 
5525     /**
5526      * @brief Defines the back margin of the wiper.
5527      * The attribute can be set, reset, and obtained as required through APIs.
5528      *
5529      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5530      * .value[0].f32: the back margin. The unit is vp. The default value is <b>0.0</b>\n
5531      * .value[1]?.i32: whether to ignore blanks, the default value is 0.
5532      * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
5533      * Format of the return value {@link ArkUI_AttributeItem}:\n
5534      * .value[0].f32: the back margin, the unit is vp. \n
5535      * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
5536      * the opposite. \n
5537      */
5538     NODE_SWIPER_NEXT_MARGIN,
5539 
5540     /**
5541     * @brief Defines the navigation indicator type of the swiper.
5542     * The attribute can be set, reset, and obtained as required through APIs.
5543     *
5544     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5545     * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
5546     * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
5547     * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
5548     * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
5549     * {@link ArkUI_SwiperDigitIndicator} is supported since API version 16. \n
5550     * \n
5551     * Format of the return value {@link ArkUI_AttributeItem}:\n
5552     * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
5553     * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
5554     * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
5555     * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
5556     * {@link ArkUI_SwiperDigitIndicator} is supported since API version 16. \n
5557     *
5558     */
5559     NODE_SWIPER_INDICATOR,
5560 
5561     /**
5562     * @brief Set the nested scrolling mode for the Swiper component and parent component.
5563     *
5564     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5565     * .value[0].i32:Nested scrolling patterns for Swiper components and parent components. The parameter type is
5566     * {@link ArkUI_SwiperNestedScrollMode} \n
5567     * The default value is <b>ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY<b> \n
5568     * \n
5569     * Format of the return value {@link ArkUI_AttributeItem}:\n
5570     * .value[0].i32:Nested scrolling patterns for Swiper components and parent components. The parameter type is
5571     * {@link ArkUI_SwiperNestedScrollMode} \n
5572     */
5573     NODE_SWIPER_NESTED_SCROLL,
5574 
5575     /**
5576     * @brief Set the switcher component to flip to the specified page.
5577     *
5578     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5579     * .value[0].i32:Specify the index value of the page in Swiper.\n
5580     * .value[1]?.i32:Set whether there is an animation effect when flipping to the specified page. 1 indicates active
5581     * effect, 0 indicates no active effect, default value is 0.\n
5582     */
5583     NODE_SWIPER_SWIPE_TO_INDEX,
5584 
5585     /**
5586     * @brief Set to disable component navigation point interactions.
5587     *
5588     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5589     * .value[0].i32: Set to disable component navigation point interaction, set to true to indicate the navigation point
5590     * is interactive, default value is true.\n
5591     * \n
5592     * The return value of the attribute acquisition method {@link ArkUI_AttributeItem} format:\n
5593     * .value[0].i32: Set to disable component navigation point interactions. \n
5594     */
5595     NODE_SWIPER_INDICATOR_INTERACTIVE,
5596 
5597     /**
5598      * @brief Sets the page flipping mode using the mouse wheel.
5599      *
5600      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5601      * .value[0].i32: page flipping mode using the mouse wheel. The parameter type is {@link ArkUI_PageFlipMode}. \n
5602      * \n
5603      * Format of the return value {@link ArkUI_PageFlipMode}:\n
5604      * .value[0].i32: page flipping mode using the mouse wheel. \n
5605      *
5606      * @since 15
5607      */
5608     NODE_SWIPER_PAGE_FLIP_MODE,
5609 
5610     /**
5611      * @brief Defines the minimum main axis size of child element for swiper to works out the display count.
5612      * This attribute can be set, reset, and obtained as required through APIs.
5613      *
5614      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5615      * .value[0].f32: minimum main axis size of the child element, Unit: vp. \n
5616      * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
5617      * and <b>1</b> means to turn pages by group. The default value is <b>0</b>. \n
5618      * \n
5619      * Format of the return value {@link ArkUI_AttributeItem}:\n
5620      * .value[0].f32: minimum main axis size of the child element, Unit: vp. \n
5621      * .value[1].i32: whether to turn pages by group. \n
5622      *
5623      * @since 16
5624      */
5625     NODE_SWIPER_AUTO_FILL,
5626 
5627     /**
5628      * @brief: Set the delineation component of the ListItem, supporting property settings, property resets, and
5629      * property acquisition interfaces.
5630      *
5631      * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
5632      * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
5633      * \n
5634      * The return value of the attribute acquisition method {@link ArkUI_AttributeItem} format:\n
5635      * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
5636      *
5637      */
5638     NODE_LIST_ITEM_SWIPE_ACTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM,
5639 
5640     /**
5641      * @brief Defines the header of the list item group.
5642      * This attribute can be set, reset, and obtained as required through APIs.
5643      *
5644      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5645      * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
5646      * \n
5647      * Format of the return value {@link ArkUI_AttributeItem}:\n
5648      * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
5649      *
5650      */
5651     NODE_LIST_ITEM_GROUP_SET_HEADER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM_GROUP,
5652     /**
5653      * @brief Defines the footer of the list item group. This attribute can be set, reset, and obtained as
5654      * required through APIs.
5655      *
5656      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5657      * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
5658      * \n
5659      * Format of the return value {@link ArkUI_AttributeItem}:\n
5660      * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
5661      *
5662      */
5663     NODE_LIST_ITEM_GROUP_SET_FOOTER,
5664     /**
5665      * @brief Defines the style of the divider for the list items. This attribute can be set, reset, and obtained
5666      * as required through APIs.
5667      *
5668      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5669      * .value[0].u32: color of the divider, in 0xARGB format.\n
5670      * .value[1].f32: stroke width of the divider, in vp.\n
5671      * .value[2].f32: distance between the divider and the start of the list, in vp.\n
5672      * .value[3].f32: distance between the divider and the end of the list, in vp.\n \n
5673      * \n
5674      * Format of the return value {@link ArkUI_AttributeItem}:\n
5675      * .value[0].u32: color of the divider, in 0xARGB format.\n
5676      * .value[1].f32: stroke width of the divider, in vp.\n
5677      * .value[2].f32: distance between the divider and the start of the list, in vp.\n
5678      * .value[3].f32: distance between the divider and the end of the list, in vp.\n \n
5679      *
5680      */
5681     NODE_LIST_ITEM_GROUP_SET_DIVIDER,
5682 
5683     /**
5684      * @brief Set the default spindle size for the ListItem Group subcomponent.
5685      *
5686      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5687      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
5688      * \n
5689      * Format of the return value {@link ArkUI_AttributeItem}:\n
5690      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
5691      */
5692     NODE_LIST_ITEM_GROUP_CHILDREN_MAIN_SIZE = 1005003,
5693 
5694     /**
5695     * @brief Defines the list item group adapter.
5696     * This attribute can be set, reset, and obtained as required through APIs.
5697     *
5698     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5699     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
5700     * \n
5701     * Format of the return value {@link ArkUI_AttributeItem}:\n
5702     * .object: {@link ArkUI_NodeAdapter} object. \n
5703     *
5704     * @since 15
5705     */
5706     NODE_LIST_ITEM_GROUP_NODE_ADAPTER = 1005004,
5707 
5708     /**
5709      * @brief Defines the horizontal alignment mode of child components in the column.
5710      * This attribute can be set, reset, and obtained as required through APIs.
5711      *
5712      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5713      * .value[0].i32: horizontal alignment mode of child components.
5714      * The parameter type is {@link ArkUI_HorizontalAlignment}.\n
5715      * Default value: <b>ARKUI_HORIZONTAL_ALIGNMENT_CENTER</b>. \n
5716      * \n
5717      * Format of the return value {@link ArkUI_AttributeItem}:\n
5718      * .value[0].i32: horizontal alignment mode of child components.
5719      * The parameter type is {@link ArkUI_HorizontalAlignment}. \n
5720      *
5721      */
5722     NODE_COLUMN_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_COLUMN,
5723     /**
5724      * @brief Defines the vertical alignment mode of child components in the column.
5725      * This attribute can be set, reset, and obtained as required through APIs.
5726      *
5727      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5728      * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}.\n
5729      * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
5730      * \n
5731      * Format of the return value {@link ArkUI_AttributeItem}:\n
5732      * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}. \n
5733      *
5734      */
5735     NODE_COLUMN_JUSTIFY_CONTENT,
5736 
5737     /**
5738      * @brief Defines the vertical alignment mode of child components in the row.
5739      * This attribute can be set, reset, and obtained as required through APIs.
5740      *
5741      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5742      * .value[0].i32: vertical alignment mode of child components.
5743      * The parameter type is {@link ArkUI_VerticalAlignment}.\n
5744      * Default value: <b>ARKUI_VERTICAL_ALIGNMENT_CENTER</b>. \n
5745      * \n
5746      * Format of the return value {@link ArkUI_AttributeItem}:\n
5747      * .value[0].i32: vertical alignment mode of child components.
5748      * The parameter type is {@link ArkUI_VerticalAlignment}. \n
5749      *
5750      */
5751     NODE_ROW_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_ROW,
5752     /**
5753      * @brief Defines the horizontal alignment mode of child components in the row.
5754      * This attribute can be set, reset, and obtained as required through APIs.
5755      *
5756      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5757      * .value[0].i32: horizontal alignment mode of child components.
5758      * The parameter type is {@link ArkUI_FlexAlignment}.\n
5759      * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
5760      * \n
5761      * Format of the return value {@link ArkUI_AttributeItem}:\n
5762      * .value[0].i32: horizontal alignment mode of child components.
5763      * The parameter type is {@link ArkUI_FlexAlignment}. \n
5764      *
5765      */
5766     NODE_ROW_JUSTIFY_CONTENT,
5767 
5768     /**
5769      * @brief Defines the flex attribute. This attribute can be set, reset, and obtained as required through APIs.
5770      *
5771      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5772      * .value[0]?.i32: direction in which flex items are arranged. The parameter type is {@link ArkUI_FlexDirection}.
5773      * The default value is <b>ARKUI_FLEX_DIRECTION_ROW</b>.\n
5774      * .value[1]?.i32: how the flex items are wrapped. The parameter type is {@link ArkUI_FlexWrap}.
5775      * The default value is <b>ARKUI_FLEX_WRAP_NO_WRAP</b>.\n
5776      * .value[2]?.i32: alignment mode along the main axis. The parameter type is {@link ArkUI_FlexAlignment}.
5777      * The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
5778      * .value[3]?.i32: alignment mode along the cross axis. The parameter type is {@link ArkUI_ItemAlignment}.
5779      * The default value is <b>ARKUI_ITEM_ALIGNMENT_START</b>.\n
5780      * .value[4]?.i32: alignment mode along the cross axis for multi-line content. The parameter type is
5781      * {@link ArkUI_FlexAlignment}. The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
5782      * \n
5783      * Format of the return value {@link ArkUI_AttributeItem}:\n
5784      * .value[0].i32: direction in which flex items are arranged. \n
5785      * .value[1].i32: how the flex items are wrapped. \n
5786      * .value[2].i32: alignment mode along the main axis. \n
5787      * .value[3].i32: alignment mode along the cross axis. \n
5788      * .value[4]?.i32: alignment mode along the cross axis for multi-line content.\n
5789      *
5790      */
5791     NODE_FLEX_OPTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_FLEX,
5792 
5793     /**
5794      * @brief Sets whether the component is being refreshed.
5795      * This attribute can be set and obtained as required through APIs.
5796      *
5797      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5798      * .value[0].i32: The parameter type is 1 or 0.
5799      * \n
5800      * Format of the return value {@link ArkUI_AttributeItem}:\n
5801      * .value[0].i32: The parameter type is 1 or 0.
5802      *
5803      */
5804     NODE_REFRESH_REFRESHING = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
5805     /**
5806      * @brief Sets the custom content in the pull-down area.
5807      * This attribute can be set, reset, and obtained as required through APIs.
5808      *
5809      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5810      * .object: The parameter type is {@link ArkUI_NodeHandle}.
5811      *
5812      */
5813     NODE_REFRESH_CONTENT,
5814     /**
5815      * @brief Sets the pull-down ratio. This attribute can be set, reset, and obtained as required through APIs.
5816      *
5817      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5818      * .value[0].f32: pull-down ratio. The value is in the range from 0 to 1.
5819      * \n
5820      * Format of the return value {@link ArkUI_AttributeItem}:\n
5821      * .value[0].f32: pull-down ratio. The value is in the range from 0 to 1.
5822      *
5823      */
5824     NODE_REFRESH_PULL_DOWN_RATIO = 1009002,
5825     /**
5826      * @brief Sets the pull-down offset that initiates a refresh.
5827      * This attribute can be set, reset, and obtained as required through APIs.
5828      *
5829      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5830       *.value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
5831      * \n
5832      * Format of the return value {@link ArkUI_AttributeItem}:\n
5833       *.value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
5834      *
5835      */
5836     NODE_REFRESH_OFFSET = 1009003,
5837     /**
5838      * @brief Sets whether to initiate a refresh when the pull-down distance exceeds the value of <b>refreshOffset</b>.
5839      * This attribute can be set, reset, and obtained as required through APIs.
5840      *
5841      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5842      * .value[0].i32: whether to initiate a refresh. The value <b>true</b> means to initiate a refresh, and
5843      * <b>false</b> means the opposite.
5844      * \n
5845      * Format of the return value {@link ArkUI_AttributeItem}:\n
5846      * .value[0].i32: whether to initiate a refresh. The value <b>1</b> means to initiate a refresh, and
5847      * <b>0</b> means the opposite.
5848      *
5849      */
5850     NODE_REFRESH_PULL_TO_REFRESH = 1009004,
5851 
5852     /**
5853      * @brief Defines the main axis direction of the <b><WaterFlow></b> component layout.
5854      * This attribute can be set, reset, and obtained as required through APIs.
5855      *
5856      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5857      * .value[0].i32: main axis direction. The parameter type is {@link ArkUI_FlexDirection}.
5858      * \n
5859      * Format of the return value {@link ArkUI_AttributeItem}:\n
5860      * .value[0].i32: main axis direction. The parameter type is {@link ArkUI_FlexDirection}.
5861      *
5862      */
5863     NODE_WATER_FLOW_LAYOUT_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
5864     /**
5865      * @brief Sets the number of columns in the water flow layout. If this parameter is not set, one column is used
5866      * by default. This attribute can be set, reset, and obtained as required through APIs.
5867      * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
5868      * component's full width, the second column 1/4, and the third column 2/4.
5869      * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
5870      * columns based on the specified column width <b>track-size</b>.
5871      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
5872      * or a valid number.
5873      *
5874      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5875      * .string: number of columns in the layout.\n
5876      * \n
5877      * Format of the return value {@link ArkUI_AttributeItem}:\n
5878      * .string: number of columns in the layout.\n
5879      *
5880      */
5881     NODE_WATER_FLOW_COLUMN_TEMPLATE,
5882 
5883     /**
5884      * @brief Sets the number of rows in the water flow layout. If this parameter is not set, one row is used
5885      * by default. This attribute can be set, reset, and obtained as required through APIs.
5886      * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
5887      * component's full height, the second row 1/4, and the third row 2/4.
5888      * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
5889      * based on the specified row height <b>track-size</b>.
5890      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
5891      * or a valid number.
5892      *
5893      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5894      * .string: number of rows in the layout. \n
5895      * \n
5896      * Format of the return value {@link ArkUI_AttributeItem}:\n
5897      * .string: number of rows in the layout. \n
5898      *
5899      */
5900     NODE_WATER_FLOW_ROW_TEMPLATE,
5901 
5902     /**
5903      * @brief Sets the gap between columns. This attribute can be set, reset, and obtained as required through APIs.
5904      *
5905      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5906      * .value[0].f32: gap between columns, in vp.\n
5907      * \n
5908      * Format of the return value {@link ArkUI_AttributeItem}:\n
5909      * .value[0].f32: gap between columns, in vp.\n
5910      *
5911      */
5912     NODE_WATER_FLOW_COLUMN_GAP,
5913 
5914     /**
5915      * @brief Sets the gap between rows. This attribute can be set, reset, and obtained as required through APIs.
5916      *
5917      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5918      * .value[0].f32: gap between lines, in vp.\n
5919      * \n
5920      * Format of the return value {@link ArkUI_AttributeItem}:\n
5921      * .value[0].f32: gap between lines, in vp.\n
5922      *
5923      */
5924     NODE_WATER_FLOW_ROW_GAP,
5925 
5926     /**
5927      * @brief Defines the water flow section configuration.
5928      * This attribute can be set, reset, and obtained as required through APIs.
5929      *
5930      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5931      * .value[0].i32: zero-based index of the water flow item section to update.
5932      * The value is converted to an integer. \n
5933      * .object: {@ArkUI_WaterFlowSectionOption} object.\n
5934      * \n
5935      * Format of the return value {@link ArkUI_AttributeItem}:\n
5936      * .object: {@ArkUI_WaterFlowSectionOption} object.\n
5937      *
5938      */
5939     NODE_WATER_FLOW_SECTION_OPTION,
5940 
5941     /**
5942     * @brief Defines the water flow adapter. The attribute can be set, reset, and obtained as required through APIs.
5943     *
5944     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5945     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
5946      * \n
5947      * Format of the return value {@link ArkUI_AttributeItem}:\n
5948      * .object: {@link ArkUI_NodeAdapter} object. \n
5949     */
5950     NODE_WATER_FLOW_NODE_ADAPTER,
5951 
5952     /**
5953      * @brief Sets the number of cached items in the water flow adapter.
5954      * This attribute can be set, reset, and obtained as required through APIs.
5955      *
5956      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
5957      * .value[0].i32: number of cached items in the water flow adapter. \n
5958      * .value[1]?.i32: whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
5959      * This parameter is supported since API version 16. \n
5960      * \n
5961      * Format of the return value {@link ArkUI_AttributeItem}: \n
5962      * .value[0].i32: number of cached items in the water flow adapter. \n
5963      * .value[1].i32: whether to the cached items will be displayed, 0: not displayed, 1: displayed.
5964      * This parameter is supported since API version 16. \n
5965      */
5966     NODE_WATER_FLOW_CACHED_COUNT,
5967     /**
5968      * @brief 设置瀑布流组件末尾的自定义显示组件。
5969      *
5970      * 属性设置方法{@link ArkUI_AttributeItem}参数格式: \n
5971      * .object:参数类型{@Link ArkUI_NodeHandle}。
5972      *
5973      */
5974     NODE_WATER_FLOW_FOOTER,
5975     /**
5976      * @brief Scroll to the specified index.
5977      *
5978      * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
5979      * lead to performance issues when loading a large number of items.\n
5980      * \n
5981      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5982      * .value[0].i32:The index value of the target element to be slid to in the current container.\n
5983      * .value[1]?.i32:Set whether there is an action when sliding to the index value of a list item in the list, where
5984      * 1 indicates an action and 0 indicates no action. Default value is 0.\n
5985      * .value[2]?.i32:Specify the alignment of the sliding element with the current container,The parameter type is
5986      * {@link ArkUI_ScrollAlignment}. Default value is </b>ARKUI_SCROLL_ALIGNMENT_START</b>.\n
5987      *
5988      */
5989     NODE_WATER_FLOW_SCROLL_TO_INDEX,
5990 
5991     /**
5992      * @brief Defines the size constraints to apply to water flow items.
5993      * This attribute can be set, reset, and obtained as required through APIs.
5994      *
5995      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5996      * .value[0].f32: minimum width. The value <b>-1</b> indicates that the minimum width is not set. \n
5997      * .value[1].f32: maximum width. The value <b>-1</b> indicates that the maximum width is not set. \n
5998      * .value[2].f32: minimum height. The value <b>-1</b> indicates that the minimum height is not set. \n
5999      * .value[3].f32: maximum height. The value <b>-1</b> indicates that the maximum height is not set. \n
6000      * \n
6001      * Format of the return value {@link ArkUI_AttributeItem}:\n
6002      * .value[0].f32: minimum width. The value <b>-1</b> indicates that the minimum width is not set. \n
6003      * .value[1].f32: maximum width. The value <b>-1</b> indicates that the maximum width is not set. \n
6004      * .value[2].f32: minimum height. The value <b>-1</b> indicates that the minimum height is not set. \n
6005      * .value[3].f32: maximum height. The value <b>-1</b> indicates that the maximum height is not set. \n
6006      *
6007      */
6008     NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE,
6009 
6010     /**
6011      * @brief Sets the layout mode for this <b>WaterFlow</b> component.
6012      * This attribute can be set, reset, and obtained as required through APIs.
6013      *
6014      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6015      * .value[0].i32: layout mode. The parameter type is {@link ArkUI_WaterFlowLayoutMode}.
6016      * \n
6017      * Format of the return value {@link ArkUI_AttributeItem}:\n
6018      * .value[0].i32: layout mode. The parameter type is {@link ArkUI_WaterFlowLayoutMode}.
6019      *
6020      * @since 16
6021      */
6022     NODE_WATER_FLOW_LAYOUT_MODE,
6023 
6024     /**
6025      * @brief Sets the number of columns in the water flow layout. If this parameter is not set, one column is used by
6026      * default. This attribute can be set, reset, and obtained as required through APIs.
6027      * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
6028      * component's full width, the second column 1/4, and the third column 2/4.
6029      * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
6030      * columns based on the specified column width <b>track-size</b>.
6031      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %, or
6032      * a valid number.
6033      *
6034      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6035      * .string: number of columns in the layout.\n
6036      * \n
6037      * Format of the return value {@link ArkUI_AttributeItem}:\n
6038      * .string: number of columns in the layout.\n
6039      *
6040      */
6041     NODE_GRID_COLUMN_TEMPLATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,
6042 
6043     /**
6044      * @brief Sets the number of rows or the minimum row height in the grid layout. If this parameter is not set, one
6045      * row is used by default. This attribute can be set, reset, and obtained as required through APIs.
6046      * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
6047      * component's full height, the second row 1/4, and the third row 2/4.
6048      * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
6049      * based on the specified row height <b>track-size</b>.
6050      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %, or
6051      * a valid number.
6052      *
6053      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6054      * .string: number of rows in the layout. \n
6055      * \n
6056      * Format of the return value {@link ArkUI_AttributeItem}:\n
6057      * .string: number of rows in the layout. \n
6058      *
6059      */
6060     NODE_GRID_ROW_TEMPLATE,
6061 
6062     /**
6063      * @brief Sets the gap between columns. This attribute can be set, reset, and obtained as required through APIs.
6064      *
6065      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6066      * .value[0].f32: gap between columns, in vp.\n
6067      * \n
6068      * Format of the return value {@link ArkUI_AttributeItem}:\n
6069      * .value[0].f32: gap between columns, in vp.\n
6070      *
6071      */
6072     NODE_GRID_COLUMN_GAP,
6073 
6074     /**
6075      * @brief Sets the gap between rows. This attribute can be set, reset, and obtained as required through APIs.
6076      *
6077      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6078      * .value[0].f32: gap between lines, in vp.\n
6079      * \n
6080      * Format of the return value {@link ArkUI_AttributeItem}:\n
6081      * .value[0].f32: gap between lines, in vp.\n
6082      *
6083      */
6084     NODE_GRID_ROW_GAP,
6085 
6086     /**
6087      * @brief Defines the grid adapter. The attribute can be set, reset, and obtained as required through APIs.
6088      *
6089      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6090      * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
6091      * \n
6092      * Format of the return value {@link ArkUI_AttributeItem}:\n
6093      * .object: {@link ArkUI_NodeAdapter} object. \n
6094      */
6095     NODE_GRID_NODE_ADAPTER,
6096 
6097     /**
6098      * @brief Sets the number of cached items in the grid adapter.
6099      * This attribute can be set, reset, and obtained as required through APIs.
6100      *
6101      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6102      * .value[0].i32: number of cached items in the water flow adapter. \n
6103      */
6104     NODE_GRID_CACHED_COUNT,
6105 
6106     /**
6107     * @brief Defines the column width of the text picker.
6108     * This attribute can be set, reset, and obtained as required through APIs.
6109     *
6110     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6111     * .value[0].f32: percentage of total width. The default value is that all colulmns are equal width.\n
6112     * .value[1]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
6113     * .value[2]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
6114     * ...\n
6115     * .value[n]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
6116     * \n
6117     * Format of the return value {@link ArkUI_AttributeItem}:\n
6118     * value[0].f32: percentage of total width.\n
6119     * value[1].f32: percentage of total width.\n
6120     * value[2].f32: percentage of total width.\n
6121     * ...\n
6122     * value[n].f32: percentage of total width.\n
6123     *
6124     * @since 18
6125     */
6126     NODE_TEXT_PICKER_COLUMN_WIDTHS = 15009,
6127     /**
6128      * @brief 设置RelativeContaine容器内的辅助线,支持属性设置,属性重置和属性获取接口。
6129      *
6130      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6131      * .object: RelativeContaine容器内的辅助线: \n
6132      * \n
6133      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6134      * .object: RelativeContaine容器内的辅助线:  \n
6135      *
6136      */
6137     NODE_RELATIVE_CONTAINER_GUIDE_LINE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RELATIVE_CONTAINER,
6138 
6139     /**
6140      * @brief 设置RelativeContaine容器内的屏障,支持属性设置,属性重置和属性获取接口。
6141      *
6142      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6143      * .object: RelativeContaine容器内的辅助线: \n
6144      * \n
6145      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6146      * .object: RelativeContaine容器内的屏障:  \n
6147      *
6148      */
6149     NODE_RELATIVE_CONTAINER_BARRIER,
6150 
6151     /**
6152      * @brief 设置帧动画组件的图片帧信息集合。不支持动态更新。支持属性设置,属性重置和属性获取接口。
6153      *
6154      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6155      * .size:图片帧的数量; \n
6156      * .object:图片帧数组,参数类型为{@ArkUI_ImageFrameInfo}数组; \n
6157      * \n
6158      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6159      * .size:图片帧的数量; \n
6160      * .object:图片帧数组,参数类型为{@ArkUI_ImageFrameInfo}数组; \n
6161      *
6162     */
6163     NODE_IMAGE_ANIMATOR_IMAGES = ARKUI_NODE_IMAGE_ANIMATOR * MAX_NODE_SCOPE_NUM,
6164     /**
6165      * @brief 控制帧动画组件的播放状态。支持属性设置,属性重置和属性获取接口。
6166      *
6167      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6168      * .value[0].i32:控制动画的播放状态,参数类型为{@link ArkUI_AnimationStatus},默认值为初始状态。 \n
6169      *
6170      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6171      * .value[0].i32:控制动画的播放状态,参数类型为{@link ArkUI_AnimationStatus}。 \n
6172      *
6173     */
6174     NODE_IMAGE_ANIMATOR_STATE = 19001,
6175     /**
6176      * @brief 设置帧动画的播放时长,当数组中任意一帧图片单独设置了duration属性后,该属性设置无效。
6177      * 支持属性设置,属性重置和属性获取接口。
6178      *
6179      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6180      * .value[0].i32:播放时长,单位为毫秒,默认值1000。 \n
6181      *
6182      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6183      * .value[0].i32:播放时长,单位为毫秒,默认值1000。 \n
6184      *
6185     */
6186     NODE_IMAGE_ANIMATOR_DURATION = 19002,
6187     /**
6188      * @brief 设置帧动画的播放方向。支持属性设置,属性重置和属性获取接口。
6189      *
6190      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6191      * .value[0].i32:播放方向,0表示从第一张图片播放到最后一张,1表示从最后一张图片播放到第一张,默认值为0。 \n
6192      *
6193      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6194      * .value[0].i32:播放方向,0表示从第一张图片播放到最后一张,1表示从最后一张图片播放到第一张。 \n
6195      *
6196     */
6197     NODE_IMAGE_ANIMATOR_REVERSE = 19003,
6198     /**
6199      * @brief 设置图片大小是否固定为组件大小。支持属性设置,属性重置和属性获取接口。
6200      *
6201      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6202      * .value[0].i32:设置图片大小是否固定为组件大小,1表示图片大小与组件大小一致。0表示每一张图片的width、height、top和left都要单独设置,默认值为1。\n
6203      *
6204      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6205      * .value[0].i32:设置图片大小是否固定为组件大小,1表示图片大小与组件大小一致。0表示每一张图片的width、height、top和left都要单独设置。 \n
6206      *
6207     */
6208     NODE_IMAGE_ANIMATOR_FIXED_SIZE = 19004,
6209     /**
6210      * @brief 设置帧动画在当前播放方向下,动画开始前和结束后的状态。支持属性设置,属性重置和属性获取接口。
6211      *
6212      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6213      * .value[0].i32:当前播放方向下,动画开始前和结束后的状态,参数类型为{ArkUI_AnimationFillMode},默认值为FORWARDS。 \n
6214      *
6215      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6216      * .value[0].i32:当前播放方向下,动画开始前和结束后的状态,参数类型为{ArkUI_AnimationFillMode}。 \n
6217      *
6218     */
6219     NODE_IMAGE_ANIMATOR_FILL_MODE = 19005,
6220     /**
6221      * @brief 设置帧动画的播放次数。支持属性设置,属性重置和属性获取接口。
6222      *
6223      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6224      * .value[0].i32:播放次数。 \n
6225      *
6226      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6227      * .value[0].i32:播放次数。 \n
6228      *
6229     */
6230     NODE_IMAGE_ANIMATOR_ITERATION = 19006,
6231     /**
6232      * @brief Defines the disabled date range of the calendar picker.
6233      * This attribute can be set, reset, and obtained as required through APIs.
6234      *
6235      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6236      * .string: A string of dates. The `1st start date`,`1st end date`,`2nd start date`,`2nd end date`,
6237      * ...,`nth start date`,`nth end date` of the disabled date range.\n
6238      *  Example: 1910-01-01,1910-12-31,2020-01-01,2020-12-31\n
6239      * \n
6240      * Format of the return value {@link ArkUI_AttributeItem}:\n
6241      * .string: A string of dates.\n
6242      *
6243      * @since 16
6244      */
6245     NODE_CALENDAR_PICKER_DISABLED_DATE_RANGE = 16006,
6246     /**
6247      * @brief Defines whether the calendar picker marks today.
6248      * This attribute can be set, reset, and obtained as required through APIs.
6249      *
6250      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6251      * .value[0].i32: whether to the calendar picker marks today. The default value is: <b>false</b>.\n
6252      * \n
6253      * Format of the return value {@link ArkUI_AttributeItem}:\n
6254      * .value[0].i32: whether to the calendar picker marks today.
6255      *
6256      * @since 16
6257      */
6258     NODE_CALENDAR_PICKER_MARK_TODAY = 16007,
6259 } ArkUI_NodeAttributeType;
6260 
6261 #define MAX_COMPONENT_EVENT_ARG_NUM 12
6262 /**
6263  * @brief Defines the parameter type of the component callback event.
6264  *
6265  * @since 12
6266  */
6267 typedef struct {
6268     /** Data array object. */
6269     ArkUI_NumberValue data[MAX_COMPONENT_EVENT_ARG_NUM];
6270 } ArkUI_NodeComponentEvent;
6271 
6272 /**
6273  * @brief Defines the string type parameter used by the component callback event.
6274  *
6275  * @since 12
6276  */
6277 typedef struct {
6278     /** String. */
6279     const char* pStr;
6280 } ArkUI_StringAsyncEvent;
6281 
6282 /**
6283  * @brief Defines a hybrid data structure for component events.
6284  *
6285  * @since 16
6286  */
6287 typedef struct {
6288     /** String data */
6289     const char* pStr;
6290     /** Extended string data */
6291     const char* pExtendStr;
6292     /** Numeric data */
6293     int32_t number;
6294 } ArkUI_TextChangeEvent;
6295 
6296 /**
6297  * @brief Enumerates the event types supported by the NativeNode component.
6298  *
6299  * @since 12
6300  */
6301 typedef enum {
6302     /**
6303      * @brief Defines the gesture event type.
6304      *
6305      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6306      * {@link ArkUI_UIInputEvent}.
6307      */
6308     NODE_TOUCH_EVENT = 0,
6309 
6310     /**
6311      * @brief Defines the mount event.
6312      *
6313      * This event is triggered when the component is mounted and displayed. \n
6314      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6315      * {@link ArkUI_NodeComponentEvent}. \n
6316      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6317      */
6318     NODE_EVENT_ON_APPEAR,
6319     /**
6320      * @brief Defines the unmount event.
6321      *
6322      * This event is triggered when the component is unmounted and hidden. \n
6323      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6324      * {@link ArkUI_NodeComponentEvent}. \n
6325      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6326      */
6327     NODE_EVENT_ON_DISAPPEAR,
6328 
6329     /**
6330      * @brief Defines the area change event.
6331      *
6332      * This event is triggered when the component's size, position, or any other attribute that may
6333      * affect its display area changes. \n
6334      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6335      *  {@link ArkUI_NodeComponentEvent}. \n
6336      * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
6337      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: original width of the target element, in vp.
6338      * The value is a number. \n
6339      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: original height of the target element, in vp.
6340      * The value is a number. \n
6341      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: original X coordinate of the target element's upper left corner
6342      * relative to the parent element's, in vp. The value is a number. \n
6343      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: original Y coordinate of the target element's upper left corner
6344      * relative to the parent element's, in vp. The value is a number. \n
6345      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: original X coordinate of the target element's upper left corner
6346      * relative to the page's, in vp. The value is a number. \n
6347      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: original Y coordinate of the target element's upper left corner
6348      * relative to the page's, in vp. The value is a number. \n
6349      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: new width of the target element, in vp. The value is a number. \n
6350      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: new height of the target element, in vp. The value is a number. \n
6351      * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: new X coordinate of the target element's upper left corner relative
6352      * to the parent element's, in vp. The value is a number. \n
6353      * <b>ArkUI_NodeComponentEvent.data[9].f32</b>: new Y coordinate of the target element's upper left corner relative
6354      * to the parent element's, in vp. The value is a number. \n
6355      * <b>ArkUI_NodeComponentEvent.data[10].f32</b>: new X coordinate of the target element's upper left corner relative
6356      * to the page's, in vp. The value is a number. \n
6357      * <b>ArkUI_NodeComponentEvent.data[11].f32</b>: new Y coordinate of the target element's upper left corner relative
6358      * to the page's, in vp. The value is a number. \n
6359      */
6360     NODE_EVENT_ON_AREA_CHANGE,
6361     /**
6362      * @brief Defines the focus event.
6363      *
6364      * This event is triggered when the component obtains the focus. \n
6365      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6366      * {@link ArkUI_NodeComponentEvent}. \n
6367      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6368      */
6369     NODE_ON_FOCUS,
6370     /**
6371      * @brief Defines the blur event.
6372      *
6373      * This event is triggered when the component loses the focus. \n
6374      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6375      * {@link ArkUI_NodeComponentEvent}. \n
6376      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6377      */
6378     NODE_ON_BLUR,
6379     /**
6380      * @brief Defines the click event.
6381      *
6382      * This event is triggered when the component is clicked. \n
6383      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6384      * {@link ArkUI_NodeComponentEvent}. \n
6385      * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
6386      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: X coordinate of the click relative to the upper left corner of the
6387      * clicked component's original area, in vp. \n
6388      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Y coordinate of the click relative to the upper left corner of the
6389      * clicked component's original area, in vp. \n
6390      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: event timestamp. It is the interval between the time when the event
6391      * is triggered and the time when the system starts, in microseconds. \n
6392      * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: event input device. The value <b>1</b> indicates the mouse,
6393      * <b>2</b> indicates the touchscreen, and <b>4</b> indicates the key. \n
6394      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: X coordinate of the click relative to the upper left corner of the
6395      * application window, in vp. \n
6396      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: Y coordinate of the click relative to the upper left corner of the
6397      * application window, in vp. \n
6398      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: X coordinate of the click relative to the upper left corner of the
6399      * application screen, in vp. \n
6400      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: Y coordinate of the click relative to the upper left corner of the
6401      * application screen, in vp. \n
6402      */
6403     NODE_ON_CLICK,
6404     /**
6405      * @brief Defines event interception.
6406      *
6407      * This event is triggered when the component is touched. \n
6408      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6409      * {@link ArkUI_UIInputEvent}. \n
6410      */
6411     NODE_ON_TOUCH_INTERCEPT,
6412     /**
6413      * @brief Defines the visible area change event.
6414      *
6415      * This event is triggered when the ratio of the component's visible area to its total area is greater than or less
6416      * than the threshold.
6417      * Before registering this event, you must set <b>NODE_VISIBLE_AREA_CHANGE_RATIO</b>. \n
6418      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6419      * {@link ArkUI_NodeComponentEvent}. \n
6420      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
6421      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
6422      * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates a
6423      * decrease. \n
6424      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area when this
6425      * callback is invoked. \n
6426      */
6427     NODE_EVENT_ON_VISIBLE_AREA_CHANGE,
6428     /**
6429      * @brief Defines the event triggered when the mouse pointer is moved over or away from the component.
6430      *
6431       \n
6432      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6433      * {@link ArkUI_NodeComponentEvent}. \n
6434      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6435      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: whether the mouse pointer is hovered over the component.
6436      * The value <b>1</b> indicates that the mouse pointer is hovered over the component, and <b>0</b> indicates that
6437      * the mouse pointer is moved away from the component. \n
6438      */
6439     NODE_ON_HOVER,
6440     /**
6441      * @brief Defines the click event.
6442      *
6443      * This event is triggered when the component is clicked by a mouse device button or when the mouse pointer moves
6444      * within the component. \n
6445      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6446      * {@link ArkUI_UIInputEvent}. \n
6447      */
6448     NODE_ON_MOUSE,
6449     /**
6450      * @brief Defines the mount event.
6451      *
6452      * This event is triggered when the component is mounted. \n
6453      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6454      * {@link ArkUI_NodeComponentEvent}. \n
6455      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6456      */
6457     NODE_EVENT_ON_ATTACH,
6458     /**
6459      * @brief Defines the unmount event.
6460      *
6461      * This event is triggered when the component is unmount. \n
6462      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6463      * {@link ArkUI_NodeComponentEvent}. \n
6464      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6465      */
6466     NODE_EVENT_ON_DETACH,
6467     /**
6468      * @brief Defines the event triggered when an accessibility action of the preconfigured type is performed.
6469      *
6470      * \n
6471      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6472      * {@link ArkUI_NodeComponentEvent}. \n
6473      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6474      * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: action type. The parameter type is
6475      * {@link ArkUI_AccessibilityActionType}. \n
6476      *
6477      */
6478     NODE_ON_ACCESSIBILITY_ACTIONS,
6479 
6480     /**
6481      * @brief Notifies the listener of the interaction state prior to a drop and drop operation.
6482      *
6483      * This event is triggered when a drag operation is about to start on a draggable item. \n
6484      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6485      * {@link ArkUI_NodeComponentEvent}. \n
6486      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6487      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: corresponds to {@link ArkUI_PreDragStatus}. \n
6488      */
6489     NODE_ON_PRE_DRAG = 14,
6490     /**
6491      * @brief Called when the user starts to drag an ite
6492      *
6493      * A drag operation is recognized only when the dragged item is moved far enough. \n
6494      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
6495      * {@link ArkUI_NodeEvent} object. \n
6496      */
6497     NODE_ON_DRAG_START = 15,
6498     /**
6499      * @brief Called when a dragged item enters the boundaries of the current component.
6500      *
6501      * The current component refers to the component that listens for this event. \n
6502      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
6503      * {@link ArkUI_NodeEvent} object. \n
6504      */
6505     NODE_ON_DRAG_ENTER = 16,
6506     /**
6507      * @brief Called  when a dragged item moves in the current component.
6508      *
6509      * The current component refers to the component that listens for this event. \n
6510      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
6511      * {@link ArkUI_NodeEvent} object. \n
6512      */
6513     NODE_ON_DRAG_MOVE = 17,
6514     /**
6515      * @brief Called when a dragged item leaves the boundaries of the current component.
6516      *
6517      * The current component refers to the component that listens for this event. \n
6518      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
6519      * {@link ArkUI_NodeEvent} object. \n
6520      */
6521     NODE_ON_DRAG_LEAVE = 18,
6522     /**
6523      * @brief Called when a dragged item is dropped on the current component.
6524      * The component can obtain the drag data for processing through the callback.
6525      *
6526      * The current component refers to the component that listens for this event. \n
6527      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
6528      * {@link ArkUI_NodeEvent} object. \n
6529      */
6530     NODE_ON_DROP = 19,
6531     /**
6532      * @brief Called when a drag operation ends.
6533      * The drag source can obtain the drag result by registering this callback.
6534      *
6535      * A drag operation ends when the dragged item is released.
6536      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
6537      * {@link ArkUI_NodeEvent} object. \n
6538      */
6539     NODE_ON_DRAG_END = 20,
6540     /**
6541      * @brief Defines the event triggered when a key event occurs.
6542      *
6543      * The callback can be triggered during interactions with a focused window using an external keyboard or other input
6544      * device. \n
6545      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6546      * {@link ArkUI_NodeComponentEvent}. \n
6547      *
6548      * @since 14
6549      */
6550     NODE_ON_KEY_EVENT = 21,
6551     /**
6552      * @brief Defines the event triggered before the input method responds to the key action.
6553      *
6554      * If the return value of this callback is <b>true</b>, it is considered that the key event has been consumed, and
6555      * subsequent event callbacks (<b>keyboardShortcut</b>, input method events, <b>onKeyEvent</b>) will be intercepted
6556      * and no longer triggered.
6557      * The callback can be triggered during interactions with a focused window using an external keyboard or other input
6558      * device. \n
6559      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6560      * {@link ArkUI_NodeComponentEvent}. \n
6561      *
6562      * @since 14
6563      */
6564     NODE_ON_KEY_PRE_IME = 22,
6565 
6566     /**
6567      * @brief Defines the event triggered when the bound component receives a focus axis event after gaining focus.
6568      *
6569      * The event callback is triggered by interactions with a joystick and a focused component. \n
6570      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6571      * {@link ArkUI_UIInputEvent}. \n
6572      *
6573      * @since 15
6574      */
6575     NODE_ON_FOCUS_AXIS = 23,
6576 
6577     /**
6578      * @brief Dispatch key event on the component node.
6579      *
6580      * When the component node receives a key event, this callback will be triggered instead of dispatching event to its
6581      * children. \n
6582      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6583      * {@link ArkUI_NodeComponentEvent}. \n
6584      *
6585      * @since 15
6586      */
6587     NODE_DISPATCH_KEY_EVENT = 24,
6588 
6589     /**
6590      * @brief Defines the event triggered when the bound component receives an axis event.
6591      *
6592      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6593      * {@link ArkUI_UIInputEvent}. \n
6594      *
6595      * @since 17
6596      */
6597     NODE_ON_AXIS = 25,
6598 
6599     /**
6600      * @brief Defines the event triggered when the bound component is clicked.
6601      *
6602      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6603      * {@link ArkUI_UIInputEvent}.  \n
6604      *
6605      * @since 18
6606      */
6607     NODE_ON_CLICK_EVENT = 26,
6608 
6609     /**
6610      * @brief Defines the event triggered when the mouse pointer hovers over or moves away from a component.
6611      *
6612      * This event is triggered when the mouse pointer enters or leaves the component's bounding box. \n
6613      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6614      * {@link ArkUI_UIInputEvent}. \n
6615      *
6616      *@since 17
6617      */
6618     NODE_ON_HOVER_EVENT = 27,
6619 
6620     /**
6621      * @brief Sets the callback for the NODE_EVENT_ON_VISIBLE_AREA_CHANGE event, which limits the callback interval.
6622      *
6623      * The callback is triggered when the ratio of the component's visible area to its total area is greater than or
6624      * less than the threshold. Before registering the callback, you must configure the threshold and update interval
6625      * using <b>NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO</b>. \n
6626      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6627      * {@link ArkUI_NodeComponentEvent}. \n
6628      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
6629      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
6630      * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates
6631      * a decrease. \n
6632      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area
6633      * when this callback is invoked. \n
6634      *
6635      * @since 17
6636      */
6637     NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_EVENT = 28,
6638 
6639     /**
6640      * @brief Defines the hover event.
6641      *
6642      * The event is triggered when the pointer is hovered by a pen device.
6643      * within the component. \n
6644      * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
6645      * {@link ArkUI_UIInputEvent} object. \n
6646      * @since15
6647     */
6648     NODE_ON_HOVER_MOVE = 29,
6649 
6650     /**
6651      * @brief Triggers onDetectResultUpdate callback
6652      * when the text is set to TextDataDetectorConfig and recognized successfully.
6653      *
6654      * Trigger this event when TextDataDetectorConfig is set and recognized successfully.\n
6655      * When the event callback occurs, the event parameter{@link ArkUI_NodeEvent}The union type in the object is
6656      * {@link ArkUI_StringAsyncEvent}.\n
6657      * {@link ArkUI_StringAsyncEvent}contains 1 parameter\n
6658      * <b>ArkUI_StringAsyncEvent.pStr</b>:Indicates the result of text recognition, in Json format.\n
6659      *
6660      */
6661     NODE_TEXT_ON_DETECT_RESULT_UPDATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
6662     /**
6663      * @brief Defines the image loading success event.
6664      *
6665      * This event is triggered when an image is successfully loaded or decoded. \n
6666      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6667      * {@link ArkUI_NodeComponentEvent}. \n
6668      * {@link ArkUI_NodeComponentEvent} contains nine parameters:\n
6669      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: loading status. The value <b>0</b> indicates that the image is
6670      * loaded successfully, and the value <b>1</b> indicates that the image is decoded successfully. \n
6671      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: width of the image, in px. \n
6672      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: height of the image, in px. \n
6673      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: width of the component, in px. \n
6674      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: height of the component, in px. \n
6675      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: offset of the rendered content relative to the component on the
6676      * x-axis, in px. \n
6677      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: offset of the rendered content relative to the component on the
6678      * y-axis, in px. \n
6679      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: actual rendered width of the image, in px. \n
6680      * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: actual rendered height of the image, in px. \n
6681      */
6682     NODE_IMAGE_ON_COMPLETE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
6683     /**
6684      * @brief Defines the image loading failure event.
6685      *
6686      * This event is triggered when an error occurs during image loading. \n
6687      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6688      * {@link ArkUI_NodeComponentEvent}. \n
6689      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6690      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>error code:\n
6691      * 401: The image could not be obtained because the image path is invalid. \n
6692      * 103101: The image format is not supported. \n
6693      */
6694     NODE_IMAGE_ON_ERROR,
6695     /**
6696      * @brief Defines the SVG animation playback completion event.
6697      *
6698      * This event is triggered when the animation playback in the loaded SVG image is complete. \n
6699      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6700      * {@link ArkUI_NodeComponentEvent}. \n
6701      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6702      */
6703     NODE_IMAGE_ON_SVG_PLAY_FINISH,
6704     /**
6705      * @brief Defines image download process event.
6706      *
6707      * This event is triggered when downloading webpage images from page components.\n
6708      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6709      * {@link ArkUI_NodeComponentEvent}. \n
6710      * {@link ArkUI_NodeComponentEvent} contains two parameter:\n
6711      * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: the num of bytes downloaded. \n
6712      * <b>ArkUI_NodeComponentEvent.data[1].u32</b>: the total number of bytes to download. \n
6713      */
6714     NODE_IMAGE_ON_DOWNLOAD_PROGRESS,
6715     /**
6716      * @brief Defines the event triggered when the toggle status changes.
6717      *
6718       \n
6719      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6720      * {@link ArkUI_NodeComponentEvent}. \n
6721      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6722      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: toggle status. <b>1</b>: on; <b>0</b>: off.
6723      *
6724      */
6725     NODE_TOGGLE_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
6726     /**
6727      * @brief Defines the event triggered when TextInput's content changes.
6728      *
6729       \n
6730      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6731      * {@link ArkUI_StringAsyncEvent}. \n
6732      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6733      * <b>ArkUI_StringAsyncEvent.pStr</b>: TextInput.
6734      *
6735      */
6736     NODE_TEXT_INPUT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
6737     /**
6738      * @brief Defines the event triggered when the Enter key of the TextInput method is pressed.
6739      *
6740       \n
6741      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6742      * {@link ArkUI_NodeComponentEvent}. \n
6743      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6744      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Enter key type of the input method.
6745      *
6746      */
6747     NODE_TEXT_INPUT_ON_SUBMIT,
6748     /**
6749      * @brief Defines the event triggered when the cut button on the pasteboard, which displays when the text box
6750      * is long pressed, is clicked.
6751      *
6752       \n
6753      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6754      * {@link ArkUI_StringAsyncEvent}. \n
6755      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6756      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
6757      *
6758      */
6759     NODE_TEXT_INPUT_ON_CUT,
6760     /**
6761      * @brief Defines the event triggered when the paste button on the pasteboard, which displays when the text box
6762      * is long pressed, is clicked.
6763      *
6764       \n
6765      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6766      * {@link ArkUI_StringAsyncEvent}. \n
6767      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6768      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
6769      *
6770      */
6771     NODE_TEXT_INPUT_ON_PASTE,
6772     /**
6773      * @brief Defines the event triggered when the text selection position changes.
6774      *
6775       \n
6776      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6777      * {@link ArkUI_NodeComponentEvent}. \n
6778      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
6779      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
6780      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
6781      *
6782      */
6783     NODE_TEXT_INPUT_ON_TEXT_SELECTION_CHANGE,
6784 
6785     /**
6786      * @brief Defines the event triggered when the input status changes.
6787      *
6788       \n
6789      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6790      * {@link ArkUI_NodeComponentEvent}. \n
6791      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6792      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that TextInput is in progress. \n
6793      *
6794      */
6795     NODE_TEXT_INPUT_ON_EDIT_CHANGE,
6796 
6797     /**
6798      * @brief This event is triggered when the input content of TextInput changes.
6799      *
6800      * Conditions for triggering this event: When the input content changes. \n
6801      * When the event callback occurs, the union type in the event parameter
6802      * {@link ArkUI_NodeEvent} object is {@link ArkUI_NodeComponentEvent}. \n
6803      * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
6804      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
6805      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
6806      *
6807      */
6808     NODE_TEXT_INPUT_ON_CONTENT_SIZE_CHANGE,
6809 
6810     /**
6811      * @brief Defines the event triggered when matching with the regular expression specified by
6812      * <b>NODE_TEXT_INPUT_INPUT_FILTER</b> fails.
6813      *
6814       \n
6815      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6816      * {@link ArkUI_StringAsyncEvent}. \n
6817      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6818      * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
6819      *
6820      */
6821     NODE_TEXT_INPUT_ON_INPUT_FILTER_ERROR,
6822     /**
6823      * @brief This callback is triggered when the text content is scrolled.
6824      *
6825       \n
6826      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6827      * {@link ArkUI_NodeComponentEvent}. \n
6828      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
6829      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizontal offset of the text in the content area. \n
6830      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
6831      * the text in the content area. \n
6832      *
6833      */
6834     NODE_TEXT_INPUT_ON_CONTENT_SCROLL,
6835     /**
6836      * @brief Defines the event triggered when text is about to be entered.
6837      *
6838      * The event parameter is {@link ArkUI_NodeEvent}. \n
6839      * value.f32: position of the text, with the index of <b>0</b>; obtained using
6840      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
6841      * buffer: string value of the text, with the index of <b>0</b>; obtained using
6842      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
6843      * @return Returns <b>true</b> if the text is entered; returns <b>false</b> otherwise.
6844      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
6845      */
6846     NODE_TEXT_INPUT_ON_WILL_INSERT = 7009,
6847     /**
6848      * @brief Defines the event triggered when text is entered.
6849      *
6850      * The event parameter is {@link ArkUI_NodeEvent}. \n
6851      * value.f32: position of the text, with the index of <b>0</b>; obtained using
6852      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
6853      * buffer: string value of the text, with the index of <b>0</b>; obtained using
6854      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
6855      */
6856     NODE_TEXT_INPUT_ON_DID_INSERT = 7010,
6857     /**
6858      * @brief Defines the event triggered when text is about to be deleted.
6859      *
6860      * The event parameter is {@link ArkUI_NodeEvent}. \n
6861      * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
6862      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
6863      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
6864      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
6865      * forward-delete. \n
6866      * buffer: string value of the text, with the index of <b>0</b>; obtained using
6867      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
6868      * @return Returns <b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
6869      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
6870      */
6871     NODE_TEXT_INPUT_ON_WILL_DELETE = 7011,
6872     /**
6873      * @brief Defines the event triggered when text is deleted.
6874      *
6875      * The event parameter is {@link ArkUI_NodeEvent}. \n
6876      * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
6877      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
6878      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
6879      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
6880      * forward-delete. \n
6881      * buffer: string value of the text, with the index of <b>0</b>; obtained using
6882      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
6883      */
6884     NODE_TEXT_INPUT_ON_DID_DELETE = 7012,
6885     /**
6886      * @brief Defines the event triggered when content (including preview text) changes in the <b>TextInput</b>
6887      * component.
6888      *
6889      * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
6890      * {@link ArkUI_TextChangeEvent} contains the following parameters:\n
6891      * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
6892      * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
6893      * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextInput</b> component.
6894      *
6895      * @since 16
6896      */
6897     NODE_TEXT_INPUT_ON_CHANGE_WITH_PREVIEW_TEXT = 7013,
6898     /**
6899      * @brief Defines the event triggered when the input in the text box changes.
6900      *
6901       \n
6902      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6903      * {@link ArkUI_StringAsyncEvent}. \n
6904      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6905      * <b>ArkUI_StringAsyncEvent.pStr</b>: text entered.
6906      *
6907      */
6908     NODE_TEXT_AREA_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
6909     /**
6910      * @brief Defines the event triggered when the paste button on the pasteboard, which displays when the text box is
6911      * long pressed, is clicked.
6912      *
6913       \n
6914      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6915      * {@link ArkUI_StringAsyncEvent}. \n
6916      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6917      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
6918      *
6919      */
6920     NODE_TEXT_AREA_ON_PASTE,
6921     /**
6922      * @brief Defines the event triggered when the text selection position changes.
6923      *
6924       \n
6925      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6926      * {@link ArkUI_NodeComponentEvent}. \n
6927      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
6928      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
6929      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
6930      *
6931      */
6932     NODE_TEXT_AREA_ON_TEXT_SELECTION_CHANGE,
6933     /**
6934      * @brief Defines the event triggered when matching with the regular expression specified by
6935      * <b>NODE_TEXT_AREA_INPUT_FILTER</b> fails.
6936      *
6937      * \n
6938      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6939      * {@link ArkUI_StringAsyncEvent}. \n
6940      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
6941      * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
6942      *
6943      */
6944     NODE_TEXT_AREA_ON_INPUT_FILTER_ERROR,
6945     /**
6946      * @brief This callback is triggered when the text content is scrolled.
6947      *
6948      * \n
6949      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6950      * {@link ArkUI_NodeComponentEvent}. \n
6951      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
6952      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizontal offset of the text in the content area. \n
6953      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
6954      * the text in the content area. \n
6955      *
6956      */
6957     NODE_TEXT_AREA_ON_CONTENT_SCROLL,
6958 
6959     /**
6960      * @brief Defines the event triggered when the input status changes.
6961      *
6962      * \n
6963      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
6964      * {@link ArkUI_NodeComponentEvent}. \n
6965      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6966      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that TextInput is in progress. \n
6967      *
6968      */
6969     NODE_TEXT_AREA_ON_EDIT_CHANGE,
6970 
6971     /**
6972      * @brief Defines the event triggered when the Enter key on the keyboard is pressed for the multi-line text box.
6973      *
6974      * This event is not triggered when <b>keyType</b> is <b>ARKUI_ENTER_KEY_TYPE_NEW_LINE</b>. \n
6975      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
6976      * {@link ArkUI_NodeComponentEvent}. \n
6977      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
6978      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: type of the Enter key.
6979      *
6980      */
6981     NODE_TEXT_AREA_ON_SUBMIT,
6982 
6983     /**
6984       * @brief  This event is triggered when the input content of TextArea changes.
6985       *
6986       * Conditions for triggering this event: When the input content changes. \n
6987       * When the event callback occurs, the union type in the event parameter {@link ArkUI_NodeEvent} object is \n
6988       * {@link ArkUI_NodeComponentEvent}.\n
6989       * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
6990       * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
6991       * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
6992       *
6993       */
6994     NODE_TEXT_AREA_ON_CONTENT_SIZE_CHANGE,
6995     /**
6996      * @brief Defines the event triggered when text is about to be entered.
6997      *
6998      * The event parameter is {@link ArkUI_NodeEvent}. \n
6999      * value.f32: position of the text, with the index of <b>0</b>; obtained using
7000      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7001      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7002      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7003      * @return Returns <b>true</b> if the text is entered; returns <b>false</b> otherwise.
7004      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
7005      */
7006     NODE_TEXT_AREA_ON_WILL_INSERT = 8008,
7007     /**
7008      * @brief Defines the event triggered when text is entered.
7009      *
7010      * The event parameter is {@link ArkUI_NodeEvent}. \n
7011      * value.f32: position of the text, with the index of <b>0</b>; obtained using
7012      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7013      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7014      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7015      */
7016     NODE_TEXT_AREA_ON_DID_INSERT = 8009,
7017     /**
7018      * @brief Defines the event triggered when text is about to be deleted.
7019      *
7020      * The event parameter is {@link ArkUI_NodeEvent}. \n
7021      * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
7022      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7023      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
7024      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
7025      * forward-delete. \n
7026      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7027      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7028      * @return Returns <b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
7029      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
7030      */
7031     NODE_TEXT_AREA_ON_WILL_DELETE = 8010,
7032     /**
7033      * @brief Defines the event triggered when text is deleted.
7034      *
7035      * The event parameter is {@link ArkUI_NodeEvent}. \n
7036      * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
7037      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7038      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
7039      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
7040      * forward-delete. \n
7041      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7042      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7043      */
7044     NODE_TEXT_AREA_ON_DID_DELETE = 8011,
7045     /**
7046      * @brief Defines the event triggered when content (including preview text) changes in the <b>TextArea</b>
7047      * component.
7048      *
7049      * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
7050      * {@link ArkUI_TextChangeEvent} contains the following parameters:\n
7051      * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
7052      * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
7053      * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextArea</b> component.
7054      *
7055      * @since 16
7056      */
7057     NODE_TEXT_AREA_ON_CHANGE_WITH_PREVIEW_TEXT = 8012,
7058     /**
7059      * @brief Defines the event triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX</b> component changes.
7060      *
7061      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7062      * {@link ArkUI_NodeComponentEvent}. \n
7063      * <b>ArkUI_NodeComponentEvent.data[0].i32</b><b>1</b>: selected; <b>0</b>: not selected.\n
7064      */
7065     NODE_CHECKBOX_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,
7066 
7067     /**
7068      * @brief Defines the event triggered when a date is selected in the <b>ARKUI_NODE_DATE_PICKER</b> component.
7069      *
7070       \n
7071      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7072      * {@link ArkUI_NodeComponentEvent}. \n
7073      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
7074      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: year of the selected date. \n
7075      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: month of the selected date. Value range: [0-11]. \n
7076      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: day of the selected date. \n
7077      */
7078     NODE_DATE_PICKER_EVENT_ON_DATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
7079 
7080     /**
7081      * @brief Defines the event triggered when a time is selected in the <b>ARKUI_NODE_TIME_PICKER</b> component.
7082      *
7083       \n
7084      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7085      * {@link ArkUI_NodeComponentEvent}. \n
7086      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7087      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: hour of the selected time. Value range: [0-23]. \n
7088      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: minute of the selected time. Value range: [0-59]. \n
7089      */
7090     NODE_TIME_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
7091 
7092     /**
7093      * @brief Defines the event triggered when an item is selected in the <b>ARKUI_NODE_TEXT_PICKER</b> component.
7094      *
7095       \n
7096      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7097      * {@link ArkUI_NodeComponentEvent}. \n
7098      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7099      * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
7100      */
7101     NODE_TEXT_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,
7102 
7103     /**
7104      * @brief Defines the event triggered when an item is selected and scrolling has stopped in the
7105      * <b>ARKUI_NODE_TEXT_PICKER</b> component.
7106      *
7107      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7108      * {@link ArkUI_NodeComponentEvent}. \n
7109      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7110      * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
7111      *
7112      * @since 14
7113      */
7114     NODE_TEXT_PICKER_EVENT_ON_SCROLL_STOP = 15001,
7115 
7116     /**
7117      * @brief Defines the event triggered when a date is selected in the <b>NODE_CALENDAR_PICKER</b>.
7118      *
7119      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7120      * {@link ArkUI_NodeComponentEvent}. \n
7121      * <b>ArkUI_NodeComponent.data[0].u32</b>: year of the selected date. \n
7122      * <b>ArkUI_NodeComponent.data[1].u32</b>: month of the selected date. \n
7123      * <b>ArkUI_NodeComponent.data[2].u32</b>: day of the selected date. \n
7124      */
7125     NODE_CALENDAR_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
7126 
7127     /**
7128      * @brief Defines the event triggered when the <b>ARKUI_NODE_SLIDER</b> component is dragged or clicked.
7129      *
7130      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7131      * {@link ArkUI_NodeComponentEvent}. \n
7132      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7133      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current slider value. \n
7134      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: state triggered by the event.\n
7135      */
7136     NODE_SLIDER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,
7137 
7138     /**
7139      * @brief Defines the event triggered when the <b>ARKUI_NODE_RADIO</b> component is dragged or clicked.
7140      *
7141      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7142      * {@link ArkUI_NodeComponentEvent}. \n
7143      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7144      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: status of the radio button. \n
7145      */
7146     NODE_RADIO_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
7147 
7148     /**
7149      * @brief Defines the callback triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX_GROOUP</b>
7150      * or checkbox changes.
7151      *
7152      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7153      * {@link ArkUI_StringAsyncEvent}. \n
7154      * <b>ArkUI_StringAsyncEvent.pStr</b>
7155      * Name: The names of the selected checkboxes;
7156      * Status:
7157      * 0: All checkboxes are selected.
7158      * 1: Some checkboxes are selected.
7159      * 2: No checkboxes are selected. \n
7160      *
7161      * @since 15
7162      */
7163     NODE_CHECKBOX_GROUP_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,
7164 
7165     /**
7166      * @brief Defines the event triggered when the index of the currently displayed element of this
7167      * <b>ARKUI_NODE_SWIPER</b> instance changes.
7168      *
7169      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7170      * {@link ArkUI_NodeComponentEvent}. \n
7171      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7172      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7173      */
7174     NODE_SWIPER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
7175 
7176     /**
7177      * @brief Defines the event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance starts.
7178      *
7179      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7180      * {@link ArkUI_NodeComponentEvent}. \n
7181      * {@link ArkUI_NodeComponentEvent} contains five parameters:\n
7182      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7183      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the target element to switch to. \n
7184      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: offset of the currently displayed element relative to the
7185      * start position of the swiper along the main axis. \n
7186      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: offset of the target element relative to the start position
7187      * of the swiper along the main axis. \n
7188      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: hands-off velocity. \n
7189      */
7190     NODE_SWIPER_EVENT_ON_ANIMATION_START,
7191 
7192     /**
7193      * @brief Defines the event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance ends.
7194      *
7195      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7196      * {@link ArkUI_NodeComponentEvent}. \n
7197      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7198      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7199      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
7200      * start position of the swiper along the main axis. \n
7201      */
7202     NODE_SWIPER_EVENT_ON_ANIMATION_END,
7203 
7204     /**
7205      * @brief Defines the event triggered on a frame-by-frame basis when the page is turned by a swipe in this
7206      * <b>ARKUI_NODE_SWIPER</b> instance.
7207      *
7208      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7209      * {@link ArkUI_NodeComponentEvent}. \n
7210      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7211      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7212      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
7213      * start position of the swiper along the main axis. \n
7214      */
7215     NODE_SWIPER_EVENT_ON_GESTURE_SWIPE,
7216 
7217     /**
7218      * @brief Defines the event triggered when content in the swiper component scrolls.
7219      * Instructions:\n
7220      * 1. This API does not work when {@link ArkUI_SwiperDisplayModeType} is set to
7221      * <b>ARKUI_SWIPER_DISPLAY_MODE_AUTO_LINEAR</b>. \n
7222      * 2. This API does not work when <b>prevMargin</b> and <b>nextMargin</b> are set in such a way that the
7223      * swiper frontend and backend display the same page during loop playback. \n
7224      * 3. During page scrolling, the </b>ContentDidScrollCallback</b> callback is invoked for all pages in the viewport
7225      * on a frame-by-frame basis. \n
7226      * For example, when there are two pages whose subscripts are 0 and 1 in the viewport, two callbacks whose indexes
7227      * are 0 and 1 are invoked in each frame. \n
7228      * 4. When the </b>swipeByGroup</b> parameter of the </b>displayCount</b> attribute is set to </b>true</b>,
7229      * the callback is invoked for all pages in a group if any page in the group is within the viewport. \n \n
7230      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7231      * {@link ArkUI_NodeComponentEvent}. \n
7232      * {@link ArkUI_NodeComponentEvent} contains four parameters:\n
7233      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the swiper component, which is the same as the index in the
7234      * <b>onChange</b> event. \n
7235      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of a page in the viewport. \n
7236      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: position of the page relative to the start position of the swiper
7237      * main axis (start position of the page corresponding to <b>selectedIndex</b>). \n
7238      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: length of the page in the main axis direction. \n
7239      */
7240     NODE_SWIPER_EVENT_ON_CONTENT_DID_SCROLL,
7241 
7242     /**
7243      * @brief Defines the event triggered when a new <b>ARKUI_NODE_SWIPER</b> instance becomes selected.
7244      * Animation is not necessarily complete.
7245      *
7246      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7247      * {@link ArkUI_NodeComponentEvent}. \n
7248      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7249      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index of the element becomes selected. \n
7250      */
7251     NODE_SWIPER_EVENT_ON_SELECTED,
7252 
7253     /**
7254      * @brief Defines the event triggered when a new <b>ARKUI_NODE_SWIPER</b> instance becomes unselected.
7255      * Animation is not necessarily complete.
7256      *
7257      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7258      * {@link ArkUI_NodeComponentEvent}. \n
7259      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7260      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index of the element becomes unselected. \n
7261      */
7262     NODE_SWIPER_EVENT_ON_UNSELECTED = 1001006,
7263 
7264     /**
7265      * @brief Defines the event triggered when content in the swiper component will scroll.
7266      * Instructions: Before page scrolling, the </b>ContentWillScrollCallback</b> callback is invoked. \n \n
7267      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7268      * {@link ArkUI_NodeComponentEvent}. \n
7269      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
7270      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index value of the current child page. \n
7271      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: the index value of the child page that will display. \n
7272      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the sliding offset of each frame.
7273      * Positive numbers indicating slide backward(e.g. from index=1 to index=0), negative numbers indicating
7274      * slide forward(e.g. from index=0 to index=1). \n
7275      */
7276     NODE_SWIPER_EVENT_ON_CONTENT_WILL_SCROLL = 1001007,
7277 
7278     /**
7279      * @brief Defines the event triggered when the <b>ARKUI_NODE_SCROLL</b> component scrolls.
7280      *
7281      * Notes for triggering the event:\n
7282      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7283      * settings, such as keyboard and mouse operations. \n
7284      * 2. Scrolling can be initiated by calling the controller API. \n
7285      * 3. The out-of-bounds bounce effect is supported. \n
7286      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7287      * {@link ArkUI_NodeComponentEvent}. \n
7288      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7289      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: horizontal scrolling offset. \n
7290      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: vertical scrolling offset. \n
7291      */
7292     NODE_SCROLL_EVENT_ON_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
7293     /**
7294      * @brief Defines the event triggered when each frame scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
7295      *
7296      * Notes for triggering the event:\n
7297      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7298      * settings, such as keyboard and mouse operations. \n
7299      * 2. This event is not triggered when the controller API is called. \n
7300      * 3. This event does not support the out-of-bounds bounce effect. \n
7301      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7302      * {@link ArkUI_NodeComponentEvent}. \n
7303      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7304      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: amount to scroll by. \n
7305      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scrolling state. \n
7306      * <b>::ArkUI_NodeComponentEvent</b> contains one return value:\n
7307      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The event handler can work out the amount by which the component
7308      * needs to scroll based on the real-world situation and return the result in this parameter. \n
7309      */
7310     NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN,
7311     /**
7312      * @brief Defines the event triggered when the container is about to scroll.
7313      *
7314      * Notes for triggering the event:\n
7315      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7316      * settings, such as keyboard and mouse operations. \n
7317      * 2. Scrolling can be initiated by calling the controller API. \n
7318      * 3. The out-of-bounds bounce effect is supported. \n
7319      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7320      * {@link ArkUI_NodeComponentEvent}. \n
7321      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
7322      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame, in vp. The offset is positive when
7323      * the content is scrolled left and negative when the content is scrolled right. \n
7324      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: scroll offset of each frame, in vp. The offset is positive when
7325      * the content is scrolled up and negative when the content is scrolled down. \n
7326      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: current scroll state.
7327      * The parameter type is {@link ArkUI_ScrollState}. \n
7328      */
7329     NODE_SCROLL_EVENT_ON_WILL_SCROLL,
7330     /**
7331      * @brief Defines the event triggered when the container scrolls.
7332      *
7333      * Notes for triggering the event:\n
7334      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7335      * settings, such as keyboard and mouse operations. \n
7336      * 2. Scrolling can be initiated by calling the controller API. \n
7337      * 3. The out-of-bounds bounce effect is supported. \n
7338      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7339      * {@link ArkUI_NodeComponentEvent}. \n
7340      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
7341      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame, in vp. The offset is positive when the
7342      * content is scrolled left and negative when the content is scrolled right. \n
7343      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: scroll offset of each frame, in vp. The offset is positive when the
7344      * content is scrolled up and negative when the content is scrolled down. \n
7345      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: current scroll state. The parameter type is
7346      * {@link ArkUI_ScrollState}. \n
7347      */
7348     NODE_SCROLL_EVENT_ON_DID_SCROLL,
7349     /**
7350      * @brief Defines the event triggered when the container starts scrolling.
7351      *
7352      * Notes for triggering the event:\n
7353      * 1. This event is triggered when scrolling is started, with support for other input settings, such as keyboard
7354      * and mouse operations. \n
7355      * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
7356      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7357      * {@link ArkUI_NodeComponentEvent}. \n
7358      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
7359      */
7360     NODE_SCROLL_EVENT_ON_SCROLL_START,
7361     /**
7362      * @brief Defines the event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component stops.
7363      *
7364      * Notes for triggering the event:\n
7365      * 1. This event is triggered when scrolling is stopped by the <b>ARKUI_NODE_SCROLL</b> component or other input
7366      * settings, such as keyboard and mouse operations. \n
7367      * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
7368      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7369      * {@link ArkUI_NodeComponentEvent}. \n
7370      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
7371      */
7372     NODE_SCROLL_EVENT_ON_SCROLL_STOP,
7373     /**
7374      * @brief Defines the event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component reaches
7375      * one of the edges.
7376      *
7377      * Notes for triggering the event:\n
7378      * 1. This event is triggered when scrolling reaches the edge after being started by the <b>ARKUI_NODE_SCROLL</b>
7379      * component or other input settings, such as keyboard and mouse operations. \n
7380      * 2. Scrolling can be initiated by calling the controller API. \n
7381      * 3. The out-of-bounds bounce effect is supported. \n
7382      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7383      * {@link ArkUI_NodeComponentEvent}. \n
7384      * {@link ArkUI_NodeComponentEvent} contains one parameter. \n
7385      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edge (top, bottom, left, or right) that the scrolling reaches. \n
7386      */
7387     NODE_SCROLL_EVENT_ON_SCROLL_EDGE,
7388     /**
7389      * @brief Define that a callback is triggered
7390      * when the scrolling container component reaches the start position.
7391      * Condition for triggering the event:\n
7392      * Triggered when the component reaches the start position. \n
7393      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
7394      * {@Link ArkUI_NodeComponentEvent}. \n
7395      * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
7396      */
7397     NODE_SCROLL_EVENT_ON_REACH_START,
7398     /**
7399      * @brief Define that a callback is triggered when the scrolling container component ends. \n
7400      * Condition for triggering the event:\n
7401      * Triggered when the component reaches the end. \n
7402      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7403      * {@Link ArkUI_NodeComponentEvent}. \n
7404      * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
7405      */
7406     NODE_SCROLL_EVENT_ON_REACH_END,
7407 
7408     /**
7409      * @brief Defines the event triggered when a child component enters or leaves the list display area.
7410      *
7411      * Notes for triggering the event:\n
7412      * This event is triggered once when the list is initialized and when the index of the first child component or the
7413      * next child component in the list display area changes. \n
7414      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7415      * {@link ArkUI_NodeComponentEvent}. \n
7416      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
7417      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the list display area. \n
7418      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the last child component in the list display area. \n
7419      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the center child component in the list display area. \n
7420      */
7421     NODE_LIST_ON_SCROLL_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
7422     /**
7423      * @brief Defines the event triggered when the list is about to scroll.
7424      *
7425      * Notes for triggering the event:\n
7426      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7427      * settings, such as keyboard and mouse operations. \n
7428      * 2. Scrolling can be initiated by calling the controller API. \n
7429      * 3. The out-of-bounds bounce effect is supported. \n
7430      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7431      * {@link ArkUI_NodeComponentEvent}. \n
7432      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7433      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame. The offset is positive when the list
7434      * is scrolled up and negative when the list is scrolled down. \n
7435      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
7436      */
7437     NODE_LIST_ON_WILL_SCROLL,
7438     /**
7439      * @brief Defines the event triggered when the list scrolls.
7440      *
7441      * Notes for triggering the event:\n
7442      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7443      * settings, such as keyboard and mouse operations. \n
7444      * 2. Scrolling can be initiated by calling the controller API. \n
7445      * 3. The out-of-bounds bounce effect is supported. \n
7446      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7447      * {@link ArkUI_NodeComponentEvent}. \n
7448      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7449      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame. The offset is positive when the list
7450      * is scrolled up and negative when the list is scrolled down. \n
7451      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
7452      */
7453     NODE_LIST_ON_DID_SCROLL,
7454 
7455      /**
7456      * @brief Defines the event triggered when the currently displayed content of the <b>ARKUI_NODE_LIST</b> changes.
7457      *
7458      * Notes for triggering the event:\n
7459      * This event is triggered once when the list is initialized and when the index of the first child component or the
7460      * next child component in the list display area changes.
7461      * During index calculation, the list item, header of the list item group, and footer of the list item group each
7462      * are counted as a child component. \n
7463      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7464      * {@link ArkUI_NodeComponentEvent}. \n
7465      * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
7466      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the list display area. \n
7467      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: area in the list item group where the list display area starts.
7468      * The type is {@link ArkUI_ListItemGroupArea}. \n
7469      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the list item at the start of the list display area
7470      * in the list item group.
7471      * If the start of the list display area is not on a list item, the value is <b>-1</b>. \n
7472      * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: index of the last child component in the list display area. \n
7473      * <b>ArkUI_NodeComponentEvent.data[5].i32</b>: area in the list item group where the list display area ends.
7474      * The type is {@link ArkUI_ListItemGroupArea}. \n
7475      * <b>ArkUI_NodeComponentEvent.data[6].i32</b>: index of the list item at the end of the list display area in the
7476      * list item group.
7477      * If the end of the list display area is not on a list item, the value is <b>-1</b>. \n
7478      *
7479      * @since 15
7480      */
7481     NODE_LIST_ON_SCROLL_VISIBLE_CONTENT_CHANGE,
7482 
7483     /**
7484      * @brief Defines the event triggered when the refresh state of the <b>ARKUI_NODE_REFRESH</b> object changes.
7485      *
7486      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7487      * {@link ArkUI_NodeComponentEvent}. \n
7488      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7489      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: refresh state. \n
7490      */
7491     NODE_REFRESH_STATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
7492     /**
7493      * @brief Defines the event triggered when the <b>ARKUI_NODE_REFRESH</b> object enters the refresh state.
7494      *
7495      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7496      * {@link ArkUI_NodeComponentEvent}. \n
7497      * {@link ArkUI_NodeComponentEvent} does not contain parameters:\n
7498      */
7499     NODE_REFRESH_ON_REFRESH,
7500     /**
7501      * @brief Defines the event triggered when the pull-down distance of <b>ARKUI_NODE_REFRESH</b> changes.
7502      *
7503      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7504      * {@link ArkUI_NodeComponentEvent}. \n
7505      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7506      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: pull-down distance. \n
7507      */
7508     NODE_REFRESH_ON_OFFSET_CHANGE = 1009002,
7509 
7510     /**
7511      * @brief Defines the event triggered when the <b>ARKUI_NODE_SCROLL</b> component is about to scroll.
7512      *
7513      * Notes for triggering the event:\n
7514      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other
7515      * input settings, such as keyboard and mouse operations. \n
7516      * 2. Scrolling can be initiated by calling the controller API. \n
7517      * 3. The out-of-bounds bounce effect is supported. \n
7518      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7519      * {@link ArkUI_NodeComponentEvent}. \n
7520      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7521      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame. The offset is positive when the
7522      * component is scrolled up and negative when the component is scrolled down. \n
7523      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
7524      */
7525     NODE_ON_WILL_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
7526     /**
7527      * @brief Defines the event triggered when the water flow container scrolls.
7528      *
7529      * Notes for triggering the event:\n
7530      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7531      * settings, such as keyboard and mouse operations. \n
7532      * 2. Scrolling can be initiated by calling the controller API. \n
7533      * 3. The out-of-bounds bounce effect is supported. \n
7534      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7535      * {@link ArkUI_NodeComponentEvent}. \n
7536      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7537      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame. The offset is positive when the
7538      * content is scrolled up and negative when the content is scrolled down. \n
7539      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
7540      */
7541     NODE_WATER_FLOW_ON_DID_SCROLL,
7542     /**
7543      * @brief Defines the enumerated values of the event triggered,
7544      * when the subcomponent of the start position or end position displayed in the current waterfall changes.
7545      * Condition for triggering the event:\n
7546      * This event is triggered when the index value of the first or last subcomponent \n
7547      * in the waterfall display area changes. \n
7548      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7549      * {@Link ArkUI_NodeComponentEvent}. \n
7550      * {@Link ArkUI_NodeComponentEvent} contains three parameters:\n
7551      * ArkUI_NodeComponentEvent.data[0].i32: The index value of \n
7552      * the start position of the currently displayed WaterFlow. \n
7553      * ArkUI_NodeComponentEvent.data[1].i32: The index value of \n
7554      * the end position of the currently displayed waterfall. \n
7555      */
7556     NODE_WATER_FLOW_ON_SCROLL_INDEX,
7557 
7558     /**
7559      * @brief 定义帧动画开始的状态回调。
7560      *
7561      * 触发该事件的条件:\n
7562      * 1、帧动画开始播放时。\n
7563      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
7564      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
7565      *
7566     */
7567     NODE_IMAGE_ANIMATOR_EVENT_ON_START = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_ANIMATOR,
7568     /**
7569      * @brief 定义帧动画播放暂停时的状态回调。
7570      *
7571      * 触发该事件的条件:\n
7572      * 1、帧动画暂停播放时。\n
7573      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
7574      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
7575      *
7576     */
7577     NODE_IMAGE_ANIMATOR_EVENT_ON_PAUSE = 19001,
7578     /**
7579      * @brief 定义帧动画c重复播放时的状态回调。
7580      *
7581      * 触发该事件的条件:\n
7582      * 1、帧动画重复播放时。\n
7583      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
7584      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
7585      *
7586     */
7587     NODE_IMAGE_ANIMATOR_EVENT_ON_REPEAT = 19002,
7588     /**
7589      * @brief 定义帧动画返回最初状态时的状态回调。
7590      *
7591      * 触发该事件的条件:\n
7592      * 1、帧动画返回最初状态时。\n
7593      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
7594      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
7595      *
7596     */
7597     NODE_IMAGE_ANIMATOR_EVENT_ON_CANCEL = 19003,
7598     /**
7599      * @brief 定义帧动画播放完成时或者停止播放时的状态回调。
7600      *
7601      * 触发该事件的条件:\n
7602      * 1、帧动画播放完成时或停止播放时。\n
7603      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
7604      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
7605      *
7606     */
7607     NODE_IMAGE_ANIMATOR_EVENT_ON_FINISH = 19004,
7608 } ArkUI_NodeEventType;
7609 
7610 /**
7611  * @brief Defines the common structure type of a component event.
7612  *
7613  * @since 12
7614  */
7615 typedef struct ArkUI_NodeEvent ArkUI_NodeEvent;
7616 
7617 /**
7618  * @brief Obtains the type of a component event.
7619  *
7620  * @param event Indicates the pointer to the component event.
7621  * @return Returns the type of the component event.
7622  * @since 12
7623  */
7624 ArkUI_NodeEventType OH_ArkUI_NodeEvent_GetEventType(ArkUI_NodeEvent* event);
7625 
7626 /**
7627  * @brief Obtains the custom ID of a component event.
7628  *
7629  * The event ID is passed in as a parameter when the {@link registerNodeEvent} function is called and can be applied
7630  * to the dispatch logic of the same event entry function {@link registerNodeEventReceiver}.
7631  *
7632  * @param event Indicates the pointer to the component event.
7633  * @return Returns the custom ID of the component event.
7634  * @since 12
7635  */
7636 int32_t OH_ArkUI_NodeEvent_GetTargetId(ArkUI_NodeEvent* event);
7637 
7638 /**
7639  * @brief Obtains the component object that triggers a component event.
7640  *
7641  * @param event Indicates the pointer to the component event.
7642  * @return Returns the component object that triggers the component event.
7643  * @since 12
7644  */
7645 ArkUI_NodeHandle OH_ArkUI_NodeEvent_GetNodeHandle(ArkUI_NodeEvent* event);
7646 
7647 /**
7648  * @brief Obtains input event (for example, touch event) data for a component event.
7649  *
7650  * @param event Indicates the pointer to the component event.
7651  * @return Returns the pointer to the input event data.
7652  * @since 12
7653  */
7654 ArkUI_UIInputEvent* OH_ArkUI_NodeEvent_GetInputEvent(ArkUI_NodeEvent* event);
7655 
7656 /**
7657  * @brief Obtains the numerical data in a component event.
7658  *
7659  * @param event Indicates the pointer to the component event.
7660  * @return Returns the pointer to the numerical data.
7661  * @since 12
7662  */
7663 ArkUI_NodeComponentEvent* OH_ArkUI_NodeEvent_GetNodeComponentEvent(ArkUI_NodeEvent* event);
7664 
7665 /**
7666  * @brief Obtains the string data in a component event.
7667  *
7668  * @param event Indicates the pointer to the component event.
7669  * @return Returns the pointer to the string data.
7670  * @since 12
7671  */
7672 ArkUI_StringAsyncEvent* OH_ArkUI_NodeEvent_GetStringAsyncEvent(ArkUI_NodeEvent* event);
7673 
7674 /**
7675  * @brief 获取ArkUI_TextChangeEvent的数据。
7676  *
7677  * @param event ArkUI_NodeEvent的指针,不应为空。
7678  * @return 返回ArkUI_TextChangeEvent对象的指针。
7679  * @since 16
7680  */
7681 ArkUI_TextChangeEvent* OH_ArkUI_NodeEvent_GetTextChangeEvent(ArkUI_NodeEvent* event);
7682 
7683 /**
7684  * @brief Obtains the custom data in a component event.
7685  *
7686  * This parameter is passed in {@link registerNodeEvent} and can be applied to the service logic when the event
7687  * is triggered.
7688  *
7689  * @param event Indicates the pointer to the component event.
7690  * @return Returns the pointer to the custom data.
7691  * @since 12
7692  */
7693 void* OH_ArkUI_NodeEvent_GetUserData(ArkUI_NodeEvent* event);
7694 
7695 /**
7696  * @brief 获取组件回调事件的数字类型参数。
7697  *
7698  * @param event 组件事件指针。
7699  * @param index 返回值索引。
7700  * @param value 具体返回值。
7701  * @return 错误码。
7702  *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
7703  *         {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} 组件事件中参数长度超限。
7704  *         {@link ARKUI_ERROR_CODE_NODE_EVENT_NO_RETURN} 组件事件不支持返回值。
7705  * @since 12
7706  */
7707 int32_t OH_ArkUI_NodeEvent_GetNumberValue(ArkUI_NodeEvent* event, int32_t index, ArkUI_NumberValue* value);
7708 
7709     /**
7710  * @brief 获取组件回调事件的字符串类型参数,字符串数据仅在事件回调过程中有效,需要在事件回调外使用建议进行额外拷贝处理。
7711  *
7712  * @param event 组件事件指针。
7713  * @param index 返回值索引。
7714  * @param string 字符串数组的指针。
7715  * @param stringSize 字符串数组的长度。
7716  * @return 错误码。
7717  *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
7718  *         {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} 组件事件中参数长度超限。
7719  *         {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} 组件事件中不存在该数据。
7720  * @since 12
7721  */
7722 int32_t OH_ArkUI_NodeEvent_GetStringValue(ArkUI_NodeEvent* event, int32_t index, char** string, int32_t* stringSize);
7723 
7724 /**
7725     * @brief 设置组件回调事件的返回值。
7726     *
7727     * @param event 组件事件指针。
7728     * @param value 事件数字类型数组。
7729     * @param size 数组长度。
7730     * @return 错误码。
7731     *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
7732     *         {@link ARKUI_ERROR_CODE_NODE_EVENT_NO_RETURN} 组件事件不支持返回值。
7733     * @since 12
7734     */
7735 int32_t OH_ArkUI_NodeEvent_SetReturnNumberValue(ArkUI_NodeEvent* event, ArkUI_NumberValue* value, int32_t size);
7736 
7737 /**
7738     * @brief Defines the dirty area flag passed in the <b>::markDirty</b> API.
7739     *
7740     * @since 12
7741     */
7742 typedef enum {
7743     /**
7744      * @brief Remeasure.
7745      *
7746      * When this type of flag is specified, re-layout is triggered by default.
7747      */
7748     NODE_NEED_MEASURE = 1,
7749 
7750     /** Re-layout. */
7751     NODE_NEED_LAYOUT,
7752     /** Re-rendering. */
7753     NODE_NEED_RENDER,
7754 } ArkUI_NodeDirtyFlag;
7755 
7756 /**
7757  * @brief Defines the custom component event type.
7758  *
7759  * @since 12
7760  */
7761 typedef enum {
7762     /** Measure type. */
7763     ARKUI_NODE_CUSTOM_EVENT_ON_MEASURE = 1 << 0,
7764     /** Layout type. */
7765     ARKUI_NODE_CUSTOM_EVENT_ON_LAYOUT = 1 << 1,
7766     /** Draw type. */
7767     ARKUI_NODE_CUSTOM_EVENT_ON_DRAW = 1 << 2,
7768     /** Foreground type. */
7769     ARKUI_NODE_CUSTOM_EVENT_ON_FOREGROUND_DRAW = 1 << 3,
7770     /** Overlay type. */
7771     ARKUI_NODE_CUSTOM_EVENT_ON_OVERLAY_DRAW = 1 << 4,
7772 } ArkUI_NodeCustomEventType;
7773 
7774 /**
7775  * @brief Defines the general structure of a custom component event.
7776  *
7777  * @since 12
7778  */
7779 typedef struct ArkUI_NodeCustomEvent ArkUI_NodeCustomEvent;
7780 
7781 /**
7782  * @brief Defines the component adapter, which is used for lazy loading of elements of scrollable components.
7783  *
7784  * @since 12
7785  */
7786 typedef struct ArkUI_NodeAdapter* ArkUI_NodeAdapterHandle;
7787 
7788 /**
7789  * @brief Defines the component adapter event.
7790  *
7791  * @since 12
7792  */
7793 typedef struct ArkUI_NodeAdapterEvent ArkUI_NodeAdapterEvent;
7794 
7795 /**
7796  * @brief Enumerates component adapter events.
7797  *
7798  * @since 12
7799  */
7800 typedef enum {
7801     /** This event occurs when the component is attached to the adapter. */
7802     NODE_ADAPTER_EVENT_WILL_ATTACH_TO_NODE = 1,
7803     /** This event occurs when the component is detached from the adapter. */
7804     NODE_ADAPTER_EVENT_WILL_DETACH_FROM_NODE = 2,
7805     /** This event occurs when the adapter obtains the unique ID of the new element to add. */
7806     NODE_ADAPTER_EVENT_ON_GET_NODE_ID = 3,
7807     /** This event occurs when the adapter obtains the content of the new element to add. */
7808     NODE_ADAPTER_EVENT_ON_ADD_NODE_TO_ADAPTER = 4,
7809     /** This event occurs when the adapter removes an element. */
7810     NODE_ADAPTER_EVENT_ON_REMOVE_NODE_FROM_ADAPTER = 5,
7811 } ArkUI_NodeAdapterEventType;
7812 
7813 /**
7814 * @brief Creates a component adapter.
7815 *
7816 * @since 12
7817 */
7818 ArkUI_NodeAdapterHandle OH_ArkUI_NodeAdapter_Create(void);
7819 
7820 /**
7821 * @brief Destroys a component adapter.
7822 *
7823 * @param handle Indicates the target component adapter.
7824 * @since 12
7825 */
7826 void OH_ArkUI_NodeAdapter_Dispose(ArkUI_NodeAdapterHandle handle);
7827 
7828 /**
7829 * @brief Sets the total number of elements in the specified adapter.
7830 *
7831 * @param handle Indicates the target component adapter.
7832 * @param size Indicates the number of elements.
7833 * @return Returns the error code.
7834 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7835 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7836 * @since 12
7837 */
7838 int32_t OH_ArkUI_NodeAdapter_SetTotalNodeCount(ArkUI_NodeAdapterHandle handle, uint32_t size);
7839 
7840 /**
7841 * @brief Obtains the total number of elements in the specified adapter.
7842 *
7843 * @param handle Indicates the target component adapter.
7844 * @return Returns the total number of elements in the adapter.
7845 * @since 12
7846 */
7847 uint32_t OH_ArkUI_NodeAdapter_GetTotalNodeCount(ArkUI_NodeAdapterHandle handle);
7848 
7849 /**
7850 * @brief Registers an event callback for the adapter.
7851 *
7852 * @param handle Indicates the target component adapter.
7853 * @param userData Indicates custom data.
7854 * @param receiver Indicates the event receiver callback.
7855 * @return Returns the error code.
7856 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7857 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7858 * @since 12
7859 */
7860 int32_t OH_ArkUI_NodeAdapter_RegisterEventReceiver(
7861     ArkUI_NodeAdapterHandle handle, void* userData, void (*receiver)(ArkUI_NodeAdapterEvent* event));
7862 
7863 /**
7864 * @brief Deregisters an event callback for the adapter.
7865 *
7866 * @param handle Indicates the target component adapter.
7867 * @since 12
7868 */
7869 void OH_ArkUI_NodeAdapter_UnregisterEventReceiver(ArkUI_NodeAdapterHandle handle);
7870 
7871 /**
7872 * @brief Instructs the specified adapter to reload all elements.
7873 *
7874 * @param handle Indicates the target component adapter.
7875 * @return Returns the error code.
7876 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7877 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7878 * @since 12
7879 */
7880 int32_t OH_ArkUI_NodeAdapter_ReloadAllItems(ArkUI_NodeAdapterHandle handle);
7881 
7882 /**
7883 * @brief Instructs the specified adapter to reload certain elements.
7884 *
7885 * @param handle Indicates the target component adapter.
7886 * @param startPosition Indicates the start position of the elements to reload.
7887 * @param itemCount Indicates the number of the elements to reload.
7888 * @return Returns the error code.
7889 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7890 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7891 * @since 12
7892 */
7893 int32_t OH_ArkUI_NodeAdapter_ReloadItem(ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
7894 
7895 /**
7896 * @brief Instructs the specified adapter to remove certain elements.
7897 *
7898 * @param handle Indicates the target component adapter.
7899 * @param startPosition Indicates the start position of the elements to remove.
7900 * @param itemCount Indicates the number of the elements to remove.
7901 * @return Returns the error code.
7902 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7903 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7904 * @since 12
7905 */
7906 int32_t OH_ArkUI_NodeAdapter_RemoveItem(ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
7907 
7908 /**
7909 * @brief Instructs the specified adapter to insert certain elements.
7910 *
7911 * @param handle Indicates the target component adapter.
7912 * @param startPosition Indicates the start position of the elements to insert.
7913 * @param itemCount Indicates the number of the elements to insert.
7914 * @return Returns the error code.
7915 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7916 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7917 * @since 12
7918 */
7919 int32_t OH_ArkUI_NodeAdapter_InsertItem(ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
7920 
7921 /**
7922 * @brief Instructs the specified adapter to move certain elements.
7923 *
7924 * @param handle Indicates the target component adapter.
7925 * @param from Indicates the start position of the elements to move.
7926 * @param to Indicates the end position of the elements to move.
7927 * @return Returns the error code.
7928 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7929 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7930 * @since 12
7931 */
7932 int32_t OH_ArkUI_NodeAdapter_MoveItem(ArkUI_NodeAdapterHandle handle, uint32_t from, uint32_t to);
7933 
7934 /**
7935 * @brief Obtains all elements stored in the specified adapter.
7936 *
7937 * This API returns the pointer to the array of the elements. You need to manually release the memory data
7938 * to which the pointer points.
7939 *
7940 * @param handle Indicates the target component adapter.
7941 * @param items Indicates the pointer to the array of the elements in the adapter.
7942 * @param size Indicates the number of elements.
7943 * @return Returns the error code.
7944 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7945 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7946 * @since 12
7947 */
7948 int32_t OH_ArkUI_NodeAdapter_GetAllItems(ArkUI_NodeAdapterHandle handle, ArkUI_NodeHandle** items, uint32_t* size);
7949 
7950 /**
7951 * @brief Obtains the custom data passed in during registration of the specified event.
7952 *
7953 * @param event Indicates the target adapter event.
7954 * @since 12
7955 */
7956 void* OH_ArkUI_NodeAdapterEvent_GetUserData(ArkUI_NodeAdapterEvent* event);
7957 
7958 /**
7959 * @brief Obtains the event type.
7960 *
7961 * @param event Indicates the target adapter event.
7962 * @return Returns the event type.
7963 * @since 12
7964 */
7965 ArkUI_NodeAdapterEventType OH_ArkUI_NodeAdapterEvent_GetType(ArkUI_NodeAdapterEvent* event);
7966 
7967 /**
7968 * @brief Obtains the element to be removed for the event to be destroyed.
7969 *
7970 * @param event Indicates the target adapter event.
7971 * @return Returns the element to be removed.
7972 * @since 12
7973 */
7974 ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetRemovedNode(ArkUI_NodeAdapterEvent* event);
7975 
7976 /**
7977 * @brief Obtains the index of the element to be operated for the specified adapter event.
7978 *
7979 * @param event Indicates the target adapter event.
7980 * @return Returns the index of the element.
7981 * @since 12
7982 */
7983 uint32_t OH_ArkUI_NodeAdapterEvent_GetItemIndex(ArkUI_NodeAdapterEvent* event);
7984 
7985 /**
7986 * @brief Obtains the scrollable container node that uses the specified adapter.
7987 *
7988 * @param event Indicates the target adapter event.
7989 * @return Returns the error code.
7990 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
7991 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
7992 * @since 12
7993 */
7994 ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetHostNode(ArkUI_NodeAdapterEvent* event);
7995 
7996 /**
7997 * @brief Sets the component to be added to the specified adapter.
7998 *
7999 * @param event Indicates the target adapter event.
8000 * @param node Indicates the component to be added.
8001 * @return Returns the error code.
8002 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8003 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8004 * @since 12
8005 */
8006 int32_t OH_ArkUI_NodeAdapterEvent_SetItem(ArkUI_NodeAdapterEvent* event, ArkUI_NodeHandle node);
8007 
8008 /**
8009 * @brief Sets the component ID to be generated.
8010 *
8011 * @param event Indicates the target adapter event.
8012 * @param id Indicates the component ID to set.
8013 * @return Returns the error code.
8014 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8015 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8016 * @since 12
8017 */
8018 int32_t OH_ArkUI_NodeAdapterEvent_SetNodeId(ArkUI_NodeAdapterEvent* event, int32_t id);
8019 
8020 /**
8021  * @brief Declares a collection of native node APIs provided by ArkUI.
8022  *
8023  * The APIs related to the native node must be called in the main thread.
8024  *
8025  * @version 1
8026  * @since 12
8027  */
8028 typedef struct {
8029     /** Struct version. */
8030     int32_t version;
8031 
8032     /**
8033      * @brief Creates a component based on {@link ArkUI_NodeType} and returns the pointer to the created component.
8034      *
8035      * @param type Indicates the type of component to create.
8036      * @return Returns the pointer to the created component. If the component fails to be created, NULL is returned.
8037      */
8038     ArkUI_NodeHandle (*createNode)(ArkUI_NodeType type);
8039 
8040     /**
8041      * @brief Destroys the component to which the specified pointer points.
8042      *
8043      * @param node Indicates the pointer.
8044      */
8045     void (*disposeNode)(ArkUI_NodeHandle node);
8046 
8047     /**
8048      * @brief Adds a component to a parent node.
8049      *
8050      * @param parent Indicates the pointer to the parent node.
8051      * @param child Indicates the pointer to the child node.
8052      * @return Returns the error code.
8053      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8054      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8055      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8056      * on BuilderNode generated nodes:
8057      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8058      */
8059     int32_t (*addChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);
8060 
8061     /**
8062      * @brief Removes a component from its parent node.
8063      *
8064      * @param parent Indicates the pointer to the parent node.
8065      * @param child Indicates the pointer to the child node.
8066      * @return Returns the error code.
8067      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8068      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8069      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8070      * on BuilderNode generated nodes:
8071      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8072      */
8073     int32_t (*removeChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);
8074 
8075     /**
8076      * @brief Inserts a component to a parent node after the specified <b>sibling</b> node.
8077      *
8078      * @param parent Indicates the pointer to the parent node.
8079      * @param child Indicates the pointer to the child node.
8080      * @param sibling Indicates the pointer to the sibling node after which the target node is to be inserted.
8081      * If the value is null, the node is inserted at the start of the parent node.
8082      * @return Returns the error code.
8083      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8084      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8085      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8086      * on BuilderNode generated nodes:
8087      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8088      */
8089     int32_t (*insertChildAfter)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);
8090 
8091     /**
8092      * @brief Inserts a component to a parent node before the specified <b>sibling</b> node.
8093      *
8094      * @param parent Indicates the pointer to the parent node.
8095      * @param child Indicates the pointer to the child node.
8096      * @param sibling Indicates the pointer to the sibling node before which the target node is to be inserted.
8097      * If the value is null, the node is inserted at the end of the parent node.
8098      * @return Returns the error code.
8099      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8100      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8101      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8102      * on BuilderNode generated nodes:
8103      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8104      */
8105     int32_t (*insertChildBefore)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);
8106 
8107     /**
8108      * @brief Inserts a component to the specified position in a parent node.
8109      *
8110      * @param parent Indicates the pointer to the parent node.
8111      * @param child Indicates the pointer to the child node.
8112      * @param position Indicates the position to which the target child node is to be inserted. If the value is a
8113      * negative number or invalid, the node is inserted at the end of the parent node.
8114      * @return Returns the error code.
8115      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8116      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8117      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8118      * on BuilderNode generated nodes:
8119      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8120      */
8121     int32_t (*insertChildAt)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, int32_t position);
8122 
8123     /**
8124      * @brief Sets the attribute of a node.
8125      *
8126      * @param node Indicates the node whose attribute needs to be set.
8127      * @param attribute Indicates the type of attribute to set.
8128      * @param item Indicates the attribute value.
8129      * @return Returns the error code.
8130      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8131      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8132      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8133      *         of the native API was not found.
8134      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8135      *         on BuilderNode generated nodes:
8136      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8137      */
8138     int32_t (*setAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute, const ArkUI_AttributeItem* item);
8139 
8140     /**
8141      * @brief Obtains an attribute.
8142      *
8143      * The pointer returned by this API is an internal buffer pointer of the ArkUI framework. As such, you do not need
8144      * to call <b>delete</b> to release the memory. However, the pointer must be used before this API is called next
8145      * time. Otherwise, the pointer may be overwritten by other values.
8146      *
8147      * @param node Indicates the node whose attribute needs to be obtained.
8148      * @param attribute Indicates the type of attribute to obtain.
8149      * @return Returns the attribute value. If the operation fails, a null pointer is returned.
8150      */
8151     const ArkUI_AttributeItem* (*getAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
8152 
8153     /**
8154      * @brief Resets an attribute.
8155      *
8156      * @param node Indicates the node whose attribute needs to be reset.
8157      * @param attribute Indicates the type of attribute to reset.
8158      * @return Returns the error code.
8159      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8160      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8161      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8162      *         of the native API was not found.
8163      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8164      *         on BuilderNode generated nodes:
8165      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8166      */
8167     int32_t (*resetAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
8168 
8169     /**
8170      * @brief Registers an event for the specified node.
8171      *
8172      * @param node Indicates the target node.
8173      * @param eventType Indicates the type of event to register.
8174      * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeEvent}
8175      * when the event is triggered.
8176      * @param userData Indicates the custom event parameter, which is passed in the callback of {@link ArkUI_NodeEvent}
8177      * when the event is triggered.
8178      * @return Returns the error code.
8179      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8180      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8181      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8182      *         of the native API was not found.
8183      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8184      *         on BuilderNode generated nodes:
8185      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8186      */
8187     int32_t (*registerNodeEvent)(
8188         ArkUI_NodeHandle node, ArkUI_NodeEventType eventType, int32_t targetId, void* userData);
8189 
8190     /**
8191      * @brief Unregisters an event for the specified node.
8192      *
8193      * @param node Indicates the target node.
8194      * @param eventType Indicates the type of event to unregister.
8195      */
8196     void (*unregisterNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType);
8197 
8198     /**
8199      * @brief Registers an event receiver.
8200      *
8201      * The ArkUI framework collects component events generated during the process and calls back the events through
8202      * the registered event receiver. \n
8203      * A new call to this API will overwrite the previously registered event receiver. \n
8204      * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer. The data will be destroyed after the callback
8205      * is complete. \n
8206      * To bind with a component instance, you can use the <b>addNodeEventReceiver</b> function. \n
8207      *
8208      * @param eventReceiver Indicates the event receiver to register.
8209      */
8210     void (*registerNodeEventReceiver)(void (*eventReceiver)(ArkUI_NodeEvent* event));
8211 
8212     /**
8213      * @brief Unregisters the event receiver.
8214      *
8215      */
8216     void (*unregisterNodeEventReceiver)();
8217 
8218     /**
8219      * @brief Forcibly marks the current node that needs to be measured, laid out, or rendered again.
8220      *
8221      * Regarding updates to system attributes, the ArkUI framework automatically marks the dirty area and performs
8222      * measuring, layout, or rendering again. In this case, you do not need to call this API.
8223      *
8224      * @param node Indicates the node for which you want to mark as dirty area.
8225      * @param dirtyFlag Indicates type of dirty area.
8226      */
8227     void (*markDirty)(ArkUI_NodeHandle node, ArkUI_NodeDirtyFlag dirtyFlag);
8228 
8229     /**
8230      * @brief Obtains the number of subnodes.
8231      *
8232      * @param node Indicates the target node.
8233      * @return Returns the error code.
8234      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8235      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8236      */
8237     uint32_t (*getTotalChildCount)(ArkUI_NodeHandle node);
8238 
8239     /**
8240      * @brief Obtains a subnode.
8241      *
8242      * @param node Indicates the target node.
8243      * @param position Indicates the position of the subnode.
8244      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8245      */
8246     ArkUI_NodeHandle (*getChildAt)(ArkUI_NodeHandle node, int32_t position);
8247 
8248     /**
8249      * @brief Obtains the first subnode.
8250      *
8251      * @param node Indicates the target node.
8252      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8253      */
8254     ArkUI_NodeHandle (*getFirstChild)(ArkUI_NodeHandle node);
8255 
8256     /**
8257      * @brief Obtains the last subnode.
8258      *
8259      * When the component is being displayed, this API must be called in the main thread.
8260      *
8261      * @param node Indicates the target node.
8262      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8263      */
8264     ArkUI_NodeHandle (*getLastChild)(ArkUI_NodeHandle node);
8265 
8266     /**
8267      * @brief Obtains the previous sibling node.
8268      *
8269      * @param node Indicates the target node.
8270      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8271      */
8272     ArkUI_NodeHandle (*getPreviousSibling)(ArkUI_NodeHandle node);
8273 
8274     /**
8275      * @brief Obtains the next sibling node.
8276      *
8277      * @param node Indicates the target node.
8278      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8279      */
8280     ArkUI_NodeHandle (*getNextSibling)(ArkUI_NodeHandle node);
8281 
8282     /**
8283      * @brief Registers a custom event for a node. When the event is triggered, the value is returned through the entry
8284      * point function registered by <b>registerNodeCustomEventReceiver</b>.
8285      *
8286      * @param node Indicates the target node.
8287      * @param eventType Indicates the type of event to register.
8288      * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeCustomEvent}
8289      * when the event is triggered.
8290      * @param userData Indicates the custom event parameter, which is passed in the callback of
8291      * {@link ArkUI_NodeCustomEvent} when the event is triggered.
8292      * @return Returns the error code.
8293      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8294      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8295      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8296      *         of the native API was not found.
8297      */
8298     int32_t (*registerNodeCustomEvent)(
8299         ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType, int32_t targetId, void* userData);
8300 
8301     /**
8302      * @brief Unregisters a custom event for a node.
8303      *
8304      * @param node Indicates the target node.
8305      * @param eventType Indicates the type of event to unregister.
8306      */
8307     void (*unregisterNodeCustomEvent)(ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType);
8308 
8309     /**
8310      * @brief Registers a unified entry point function for custom node event callbacks.
8311      *
8312      * The ArkUI framework collects custom component events generated during the process and calls back the events
8313      * through the registered <b>registerNodeCustomEventReceiver</b>. \n
8314      * A new call to this API will overwrite the previously registered event receiver.
8315      * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
8316      * The data will be destroyed after the callback is complete. \n
8317      * To bind with a component instance, you can use the <b>addNodeCustomEventReceiver</b> function. \n
8318      *
8319      * @param eventReceiver Indicates the event receiver to register.
8320      */
8321     void (*registerNodeCustomEventReceiver)(void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
8322 
8323     /**
8324      * @brief Unregisters the unified entry point function for custom node event callbacks.
8325      *
8326      */
8327     void (*unregisterNodeCustomEventReceiver)();
8328 
8329     /**
8330      * @brief Sets the width and height for a component after the measurement.
8331      *
8332      * @param node Indicates the target node.
8333      * @param width Indicates the width.
8334      * @param height Indicates the height.
8335      * @return Returns the error code.
8336      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8337      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8338      */
8339     int32_t (*setMeasuredSize)(ArkUI_NodeHandle node, int32_t width, int32_t height);
8340 
8341     /**
8342      * @brief Sets the position for a component.
8343      *
8344      * @param node Indicates the target node.
8345      * @param positionX Indicates the X coordinate.
8346      * @param positionY Indicates the Y coordinate.
8347      * @return Returns the error code.
8348      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8349      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8350      */
8351     int32_t (*setLayoutPosition)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);
8352 
8353     /**
8354      * @brief Obtains the width and height of a component after measurement.
8355      *
8356      * @param node Indicates the target node.
8357      * @return Returns the width and height of the component.
8358      */
8359     ArkUI_IntSize (*getMeasuredSize)(ArkUI_NodeHandle node);
8360 
8361     /**
8362      * @brief Obtains the position of a component after the layout is complete.
8363      *
8364      * @param node Indicates the target node.
8365      * @return Returns the position of the component.
8366      */
8367     ArkUI_IntOffset (*getLayoutPosition)(ArkUI_NodeHandle node);
8368 
8369     /**
8370      * @brief Measures a node. You can use the <b>getMeasuredSize</b> API to obtain the size after the measurement.
8371      *
8372      * @param node Indicates the target node.
8373      * @param Constraint Indicates the size constraint.
8374      * @return Returns the error code.
8375      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8376      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8377      */
8378     int32_t (*measureNode)(ArkUI_NodeHandle node, ArkUI_LayoutConstraint* Constraint);
8379 
8380     /**
8381      * @brief Lays outs a component and passes the expected position of the component relative to its parent component.
8382      *
8383      * @param node Indicates the target node.
8384      * @param positionX Indicates the X coordinate.
8385      * @param positionY Indicates the Y coordinate.
8386      * @return Returns the error code.
8387      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8388      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8389      */
8390     int32_t (*layoutNode)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);
8391 
8392     /**
8393      * @brief Adds a component event callback function to a component to receive component events generated
8394      * by the component.
8395      *
8396      * Unlike the global registration function <b>registerNodeEventReceiver</b>, this API allows multiple event
8397      * receivers to be added to the same component. \n
8398      * The callback added by this API is triggered before the global callback registered by
8399      * <b>registerNodeEventReceiver</b>. \n
8400      * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer.
8401      * The data will be destroyed after the callback is complete. \n
8402      *
8403      * @param node Indicates the component for which you want to add the event callback function.
8404      * @param eventReceiver Indicates the component event callback function to add.
8405      * @return Returns the error code.
8406      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8407      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8408      */
8409     int32_t (*addNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));
8410 
8411     /**
8412      * @brief Removes the registered component event callback function from a component.
8413      *
8414      * @param node Indicates the component from which you want to remove the event callback function.
8415      * @param eventReceiver Indicates the component event callback function to remove.
8416      * @return Returns the error code.
8417      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8418      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8419      */
8420     int32_t (*removeNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));
8421 
8422     /**
8423      * @brief Adds a custom event callback function to a component to receive custom events
8424      * (such as layout and drawing events) generated by the component.
8425      *
8426      * Unlike the global registration function <b>registerNodeCustomEventReceiver</b>, this API allows
8427      * multiple event receivers to be added to the same component. \n
8428      * The callback added by this API is triggered before the global callback registered by
8429      * <b>registerNodeCustomEventReceiver</b>. \n
8430      * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
8431      * The data will be destroyed after the callback is complete. \n
8432      *
8433      * @param node Indicates the component for which you want to add the custom event callback function.
8434      * @param eventReceiver Indicates the custom event callback function to add.
8435      * @return Returns the error code.
8436      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8437      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8438      */
8439     int32_t (*addNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
8440 
8441     /**
8442      * @brief Removes a registered custom event callback function from a component.
8443      *
8444      * @param node Indicates the component from which you want to remove the custom event callback function.
8445      * @param eventReceiver Indicates the custom event callback function to remove.
8446      * @return Returns the error code.
8447      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8448      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8449      */
8450     int32_t (*removeNodeCustomEventReceiver)(
8451         ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
8452 
8453     /**
8454      * @brief Saves custom data on the specified component.
8455      *
8456      * @param node Indicates the component on which the custom data will be saved.
8457      * @param userData Indicates the custom data to be saved.
8458      * @return Returns the error code.
8459      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8460      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8461      */
8462     int32_t (*setUserData)(ArkUI_NodeHandle node, void* userData);
8463 
8464     /**
8465      * @brief Obtains the custom data saved on the specified component.
8466      *
8467      * @param node Indicates the target component.
8468      * @return Returns the custom data.
8469      */
8470     void* (*getUserData)(ArkUI_NodeHandle node);
8471 
8472     /**
8473      * @brief Sets the unit for a component.
8474      *
8475      * @param node Indicates the component for which you want to set the unit.
8476      * @param unit Indicates the unit, which is an enumerated value of {@link ArkUI_LengthMetricUnit}.
8477      * @return Returns the error code.
8478      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8479      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8480      */
8481     int32_t (*setLengthMetricUnit)(ArkUI_NodeHandle node, ArkUI_LengthMetricUnit unit);
8482 
8483     /**
8484      * @brief Obtains the parent node.
8485      *
8486      * @param node Indicates the target node.
8487      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8488      */
8489     ArkUI_NodeHandle (*getParent)(ArkUI_NodeHandle node);
8490 
8491     /**
8492     * @brief Remove all child nodes from the parent component.
8493     *
8494     * @param parent target node object.
8495     * @return Returns the error code.
8496     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8497     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8498     * @since 12
8499     */
8500     int32_t (*removeAllChildren)(ArkUI_NodeHandle parent);
8501 } ArkUI_NativeNodeAPI_1;
8502 
8503 /**
8504 * @brief Obtains the size constraint for measurement through a custom component event.
8505 *
8506 * @param event Indicates the pointer to the custom component event.
8507 * @return Returns the pointer to the size constraint.
8508 * @since 12
8509 */
8510 ArkUI_LayoutConstraint* OH_ArkUI_NodeCustomEvent_GetLayoutConstraintInMeasure(ArkUI_NodeCustomEvent* event);
8511 
8512 /**
8513 * @brief Obtains the expected position of a component relative to its parent component in the layout phase through a
8514 * custom component event.
8515 *
8516 * @param event Indicates the pointer to the custom component event.
8517 * @return Returns the expected position relative to the parent component.
8518 * @since 12
8519 */
8520 ArkUI_IntOffset OH_ArkUI_NodeCustomEvent_GetPositionInLayout(ArkUI_NodeCustomEvent* event);
8521 
8522 /**
8523 * @brief Obtains the drawing context through a custom component event.
8524 *
8525 * @param event Indicates the pointer to the custom component event.
8526 * @return Returns the drawing context.
8527 * @since 12
8528 */
8529 ArkUI_DrawContext* OH_ArkUI_NodeCustomEvent_GetDrawContextInDraw(ArkUI_NodeCustomEvent* event);
8530 
8531 /**
8532 * @brief Obtains the ID of a custom component event.
8533 *
8534 * @param event Indicates the pointer to the custom component event.
8535 * @return Returns the ID of the custom component event.
8536 * @since 12
8537 */
8538 int32_t OH_ArkUI_NodeCustomEvent_GetEventTargetId(ArkUI_NodeCustomEvent* event);
8539 
8540 /**
8541 * @brief Obtains custom event parameters through a custom component event.
8542 *
8543 * @param event Indicates the pointer to the custom component event.
8544 * @return Returns the custom event parameters.
8545 * @since 12
8546 */
8547 void* OH_ArkUI_NodeCustomEvent_GetUserData(ArkUI_NodeCustomEvent* event);
8548 
8549 /**
8550 * @brief Obtains a component object through a custom component event.
8551 *
8552 * @param event Indicates the pointer to the custom component event.
8553 * @return Returns the component object.
8554 * @since 12
8555 */
8556 ArkUI_NodeHandle OH_ArkUI_NodeCustomEvent_GetNodeHandle(ArkUI_NodeCustomEvent* event);
8557 
8558 /**
8559 * @brief Obtains the event type through a custom component event.
8560 *
8561 * @param event Indicates the pointer to the custom component event.
8562 * @return Returns the type of the custom component event.
8563 * @since 12
8564 */
8565 ArkUI_NodeCustomEventType OH_ArkUI_NodeCustomEvent_GetEventType(ArkUI_NodeCustomEvent* event);
8566 
8567 /**
8568 * @brief 通过自定义组件事件获取自定义段落组件的测量信息。
8569 *
8570 * @param event 自定义组件事件。
8571 * @param info 需要获取的测量信息。
8572 * @return 错误码。
8573 *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
8574 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} 函数参数异常。
8575 * @since 12
8576 */
8577 int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo(
8578     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMeasureInfo* info);
8579 
8580 /**
8581 * @brief 通过自定义组件事件设置自定义段落的度量指标。
8582 *
8583 * @param event 自定义组件事件。
8584 * @param metrics 需要获取的度量指标信息。
8585 * @return 错误码。
8586 *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
8587 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} 函数参数异常。
8588 * @since 12
8589 */
8590 int32_t OH_ArkUI_NodeCustomEvent_SetCustomSpanMetrics(
8591     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMetrics* metrics);
8592 
8593 /**
8594 * @brief 通过自定义组件事件获取自定义段落组件的绘制信息。
8595 *
8596 * @param event 自定义组件事件。
8597 * @param event 需要获取的绘制信息。
8598 * @return 错误码。
8599 *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
8600 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} 函数参数异常。
8601 * @since 12
8602 */
8603 int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanDrawInfo(
8604     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanDrawInfo* info);
8605 
8606 /**
8607  * @brief Adds a component to a node content.
8608  *
8609  * @param content Indicates the pointer to the node content instance.
8610  * @param node Indicates the pointer to the node.
8611  * @return Returns 0 if success.
8612  *         Returns 401 if a parameter exception occurs.
8613  * @since 12
8614  */
8615 int32_t OH_ArkUI_NodeContent_AddNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);
8616 
8617 /**
8618  * @brief Adds a component to a node content.
8619  *
8620  * @param content Indicates the pointer to the node content instance.
8621  * @param node Indicates the pointer to the node.
8622  * @return Returns 0 if success.
8623  *         Returns 401 if a parameter exception occurs.
8624  * @since 12
8625  */
8626 int32_t OH_ArkUI_NodeContent_InsertNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node, int32_t position);
8627 
8628 /**
8629  * @brief Removes a component from a node content.
8630  *
8631  * @param content Indicates the pointer to the node content.
8632  * @param node Indicates the pointer to the node.
8633  * @return Returns 0 if success.
8634  *         Returns 401 if a parameter exception occurs.
8635  * @since 12
8636  */
8637 int32_t OH_ArkUI_NodeContent_RemoveNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);
8638 
8639 /**
8640  * @brief Defines the node content event type.
8641  *
8642  * @since 12
8643  */
8644 typedef enum {
8645     /** Defines the mount event. */
8646     NODE_CONTENT_EVENT_ON_ATTACH_TO_WINDOW = 0,
8647     /** Defines the unmount event. */
8648     NODE_CONTENT_EVENT_ON_DETACH_FROM_WINDOW = 1,
8649 } ArkUI_NodeContentEventType;
8650 
8651 
8652 /**
8653  * @brief Enumerates the inspector error codes.
8654  * @since 15
8655  */
8656 typedef enum {
8657     /**
8658      * @error Success.
8659      */
8660     ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL = 0,
8661     /**
8662      * @error Invalid parameter.
8663      */
8664     ARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER = -1,
8665 } ArkUI_InspectorErrorCode;
8666 
8667 /**
8668  * @brief Defines the general structure of a node content event.
8669  *
8670  * @since 12
8671  */
8672 typedef struct ArkUI_NodeContentEvent ArkUI_NodeContentEvent;
8673 
8674 /**
8675   * @brief Defines the node content event callback function.
8676   *
8677   * @since 12
8678   */
8679 typedef void (*ArkUI_NodeContentCallback)(ArkUI_NodeContentEvent* event);
8680 
8681 /**
8682  * @brief Register a callback for this <b>ArkUI_NodeContentHandle</b> instance.
8683  *
8684  * @param content Indicates the <b>ArkUI_NodeContentHandle</b> instance.
8685  * @param callback Indicates the callback of <b>ArkUI_NodeContentHandle</b>
8686  * @return Returns the status code
8687  * @since 12
8688  */
8689 int32_t OH_ArkUI_NodeContent_RegisterCallback(ArkUI_NodeContentHandle content, ArkUI_NodeContentCallback callback);
8690 
8691 /**
8692  * @brief Obtains the type of a node content.
8693  *
8694  * @param event Indicates the pointer to the node content.
8695  * @return Returns the type of the node content.
8696  * @since 12
8697  */
8698 ArkUI_NodeContentEventType OH_ArkUI_NodeContentEvent_GetEventType(ArkUI_NodeContentEvent* event);
8699 
8700 /**
8701  * @brief Obtains the node content object that triggers a node content event.
8702  *
8703  * @param event Indicates the pointer to the node content event.
8704  * @return Returns the node content object that triggers the node content event.
8705  * @since 12
8706  */
8707 ArkUI_NodeContentHandle OH_ArkUI_NodeContentEvent_GetNodeContentHandle(ArkUI_NodeContentEvent* event);
8708 
8709 /**
8710  * @brief Saves custom data on the specified node content.
8711  *
8712  * @param content Indicates the node content on which the custom data will be saved.
8713  * @param userData Indicates the custom data to be saved.
8714  * @return Returns the error code.
8715  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8716  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8717  * @since 12
8718  */
8719 int32_t OH_ArkUI_NodeContent_SetUserData(ArkUI_NodeContentHandle content, void* userData);
8720 
8721 /**
8722  * @brief Obtains the custom data saved on the specified node content.
8723  *
8724  * @param content Indicates the target node content.
8725  * @return Returns the custom data.
8726  * @since 12
8727  */
8728 void* OH_ArkUI_NodeContent_GetUserData(ArkUI_NodeContentHandle content);
8729 
8730 /**
8731  * @brief Get the size of the component layout area.
8732  * The layout area size does not include graphic variation attributes such as scaling.
8733  *
8734  * @param node ArkUI_NodeHandle pointer.
8735  * @param size The drawing area size of the component handle, in px.
8736  * @return Error code.
8737  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
8738  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8739  * @since 12
8740  */
8741 int32_t OH_ArkUI_NodeUtils_GetLayoutSize(ArkUI_NodeHandle node, ArkUI_IntSize* size);
8742 
8743 /**
8744  * @brief Obtain the position of the component layout area relative to the parent component.
8745  * The relative position of the layout area does not include graphic variation attributes, such as translation.
8746  *
8747  * @param node ArkUI_NodeHandle pointer.
8748  * @param localOffset The offset value of the component handle relative to the parent component, in px.
8749  * @return Error code.
8750  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
8751  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8752  * @since 12
8753  */
8754 int32_t OH_ArkUI_NodeUtils_GetLayoutPosition(ArkUI_NodeHandle node, ArkUI_IntOffset* localOffset);
8755 
8756 /**
8757  * @brief Obtain the position of the component layout area relative to the window.
8758  * The relative position of the layout area does not include graphic variation attributes, such as translation.
8759  *
8760  * @param node ArkUI_NodeHandle pointer.
8761  * @param globalOffset The offset value of the component handle relative to the window, in px.
8762  * @return Error code.
8763  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
8764  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8765  * @since 12
8766  */
8767 int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffset);
8768 
8769 /**
8770  * @brief Obtain the position of the component layout area relative to the screen.
8771  * The relative position of the layout area does not include graphic variation attributes, such as translation.
8772  *
8773  * @param node ArkUI_NodeHandle pointer.
8774  * @param screenOffset The offset value of the component handle relative to the screen, in px.
8775  * @return Error code.
8776  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
8777  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8778  * @since 12
8779  */
8780 int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* screenOffset);
8781 
8782 /**
8783  * @brief Obtain the position of the component in the window, including the properties of graphic translation changes.
8784  *
8785  * @param node ArkUI_NodeHandle pointer.
8786  * @param translateOffset The cumulative offset value of the component handle itself,
8787  * parent components, and ancestor nodes, in px.
8788  * @return Error code.
8789  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
8790  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8791  * @since 12
8792  */
8793 int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);
8794 
8795 /**
8796  * @brief Obtain the position of the component on the screen, including the attributes of graphic translation changes.
8797  *
8798  * @param node ArkUI_NodeHandle pointer.
8799  * @param translateOffset The cumulative offset value of the component handle itself,
8800  * parent components, and ancestor nodes, in px.
8801  * @return Error code.
8802  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
8803  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8804  * @since 12
8805  */
8806 int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);
8807 
8808 /**
8809  * @brief Add the custom property of the component. This interface only works on the main thread.
8810  *
8811  * @param node ArkUI_NodeHandle pointer.
8812  * @param name The name of the custom property. Passing null pointers is not allowed.
8813  * @param value The value of the custom property. Passing null pointers is not allowed.
8814  * @since 13
8815  */
8816 void OH_ArkUI_NodeUtils_AddCustomProperty(ArkUI_NodeHandle node, const char* name, const char* value);
8817 
8818 /**
8819  * @brief Remove the custom property of the component.
8820  *
8821  * @param node ArkUI_NodeHandle pointer.
8822  * @param name The name of the custom property.
8823  * @since 13
8824  */
8825 void OH_ArkUI_NodeUtils_RemoveCustomProperty(ArkUI_NodeHandle node, const char* name);
8826 
8827 /**
8828  * @brief Get the value of the custom property of the component.
8829  *
8830  * @param node ArkUI-NodeHandle pointer.
8831  * @param name The name of the custom attribute.
8832  * @param handle The structure of the custom attribute corresponding to the key parameter name obtained.
8833  * @return Error code.
8834  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
8835  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8836  * @since 14
8837  */
8838 int32_t OH_ArkUI_NodeUtils_GetCustomProperty(ArkUI_NodeHandle node, const char* name, ArkUI_CustomProperty** handle);
8839 
8840 /**
8841  * @brief Get the parent node to obtain the component nodes created by ArkTs.
8842  *
8843  * @param node Target node object.
8844  * @return Return the pointer of the component.
8845  * @since 14
8846  */
8847 ArkUI_NodeHandle OH_ArkUI_NodeUtils_GetParentInPageTree(ArkUI_NodeHandle node);
8848 
8849 /**
8850  * @brief Retrieve all active child nodes of a node. Span and ImageSpan will not be counted in the children.
8851  *
8852  * @param head Pass in the node that needs to be obtained.
8853  * @param handle The structure corresponding to the sub node information of the head node.
8854  * @return Error code.
8855  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
8856  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8857  * @since 14
8858  */
8859 int32_t OH_ArkUI_NodeUtils_GetActiveChildrenInfo(ArkUI_NodeHandle head, ArkUI_ActiveChildrenInfo** handle);
8860 
8861 /**
8862  * @brief Retrieve the root node of the current page.
8863  *
8864  * @param node Target node object.
8865  * @return Return the pointer of the component.
8866  * @since 14
8867  */
8868 ArkUI_NodeHandle OH_ArkUI_NodeUtils_GetCurrentPageRootNode(ArkUI_NodeHandle node);
8869 
8870 /**
8871  * @brief Retrieve whether the component is labeled by C-API.
8872  *
8873  * @param node Target node object.
8874  * @return Return whether the node is a Tag created by C-API,
8875  *         true represents created by C-API, false represents not created by C-API.
8876  * @since 14
8877  */
8878 bool OH_ArkUI_NodeUtils_IsCreatedByNDK(ArkUI_NodeHandle node);
8879 
8880 /**
8881  * @brief Get the type of node.
8882  *
8883  * @param node Target node object.
8884  * @return Return the type of the node.
8885  *         For specific open types, refer to {@link ArkUI_NodeType}. For unopened nodes, return -1.
8886  * @since 14
8887  */
8888 int32_t OH_ArkUI_NodeUtils_GetNodeType(ArkUI_NodeHandle node);
8889 
8890 /**
8891  * @brief Get the node handle by id. This interface only works on the main thread.
8892  *
8893  * @param id The id of the target node handle.
8894  * @param node The handle of target node handle.
8895  * @return Error code.
8896  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
8897  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8898  * @since 15
8899  */
8900 int32_t OH_ArkUI_NodeUtils_GetAttachedNodeHandleById(const char* id, ArkUI_NodeHandle* node);
8901 
8902 /**
8903  * @brief Get info of the window to which the node belongs.
8904  *
8905  * @param node Target node object.
8906  * @param info Window info. Use {@link OH_ArkUI_HostWindowInfo_Destroy} to release memory.
8907  * @return Error code.
8908  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
8909  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8910  *         {@link ARKUI_ERROR_CODE_NODE_NOT_ON_MAIN_TREE} The node is not mounted.
8911  * @since 15
8912  */
8913 int32_t OH_ArkUI_NodeUtils_GetWindowInfo(ArkUI_NodeHandle node, ArkUI_HostWindowInfo** info);
8914 
8915 /**
8916  * @brief Move the node handle to target parent node as child.
8917  *
8918  * @param node The node handle of the node to move.
8919  * @param target_parent The node handle of target parent.
8920  * @param index Indicates the index which the node is moved to. If the value is a nagative number of invalid, the
8921  *              node is moved to the end of the target parent node.
8922  * @return Error code.
8923  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
8924  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8925  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
8926  * @since 16
8927  */
8928 int32_t OH_ArkUI_NodeUtils_MoveTo(ArkUI_NodeHandle node, ArkUI_NodeHandle target_parent, int32_t index);
8929 
8930 /**
8931  * @brief The event called when the sliding operation offset changes.
8932  *
8933  * @param node Indicates the target node.
8934  * @param userData Indicates the custom data to be saved.
8935  * @param onFinish Callback Events.
8936  *        offset Slide offset.
8937  * @return Error code.
8938  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
8939  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8940  *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
8941  * @since 12
8942  */
8943 int32_t OH_ArkUI_List_CloseAllSwipeActions(ArkUI_NodeHandle node, void* userData, void (*onFinish)(void* userData));
8944 
8945 /**
8946 * @brief Obtain the UIContext pointer to the page where the node is located.
8947 *
8948 * @param node The node.
8949 * @return The UIContext pointer.
8950 *         If a null pointer is returned, it may be because the node is empty.
8951 * @since 12
8952 */
8953 ArkUI_ContextHandle OH_ArkUI_GetContextByNode(ArkUI_NodeHandle node);
8954 
8955 /**
8956  * @brief The event called when the system color mode changes.
8957  *        Only one system color change callback can be registered for the same component.
8958  *
8959  * @param node Indicates the target node.
8960  * @param userData Indicates the custom data to be saved.
8961  * @param onColorModeChange Callback Events.
8962  * @return Error code.
8963  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
8964  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8965  *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
8966  * @since 12
8967  */
8968 int32_t OH_ArkUI_RegisterSystemColorModeChangeEvent(
8969     ArkUI_NodeHandle node, void* userData, void (*onColorModeChange)(ArkUI_SystemColorMode colorMode, void* userData));
8970 
8971 /**
8972  * @brief Unregister the event callback when the system color mode changes.
8973  *
8974  * @param node Indicates the target node.
8975  * @since 12
8976  */
8977 void OH_ArkUI_UnregisterSystemColorModeChangeEvent(ArkUI_NodeHandle node);
8978 
8979 /**
8980  * @brief The event called when the system font style changes.
8981  *        Only one system font change callback can be registered for the same component.
8982  *
8983  * @param node Indicates the target node.
8984  * @param userData Indicates the custom data to be saved.
8985  * @param onFontStyleChange Callback Events.
8986  * @return Error code.
8987  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
8988  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
8989  *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
8990  * @since 12
8991  */
8992 int32_t OH_ArkUI_RegisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node, void* userData,
8993     void (*onFontStyleChange)(ArkUI_SystemFontStyleEvent* event, void* userData));
8994 
8995 /**
8996  * @brief Unregister the event callback when the system font style changes.
8997  *
8998  * @param node Indicates the target node.
8999  * @since 12
9000  */
9001 void OH_ArkUI_UnregisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node);
9002 
9003 /**
9004  * @brief Retrieve the font size value for system font change events.
9005  *
9006  * @param event Indicates a pointer to the current system font change event.
9007  * @return Updated system font size scaling factor. Default value: 1.0.
9008  *         -1 indicates a retrieval error.
9009  * @since 12
9010  */
9011 float OH_ArkUI_SystemFontStyleEvent_GetFontSizeScale(const ArkUI_SystemFontStyleEvent* event);
9012 
9013 /**
9014  * @brief Retrieve the font thickness values for system font change events.
9015  *
9016  * @param event Indicates a pointer to the current system font change event.
9017  * @return The updated system font thickness scaling factor. Default value: 1.0.
9018  *         -1 indicates a retrieval error.
9019  * @since 12
9020  */
9021 float OH_ArkUI_SystemFontStyleEvent_GetFontWeightScale(const ArkUI_SystemFontStyleEvent* event);
9022 
9023 /**
9024  * @brief Registers a callback for node when layout is completed.
9025  *
9026  * @param node Indicates the target node.
9027  * @param userData Indicates the custom data used in onLayoutCompleted callback function.
9028  * @param onLayoutCompleted Indicates the function when layout completed is callback.
9029  * @return error code
9030            {@link ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL} if the operation is successful.
9031  *         {@link ARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER} if a parameter is incorrect.
9032  * @since 15
9033  */
9034 int32_t OH_ArkUI_RegisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node,
9035     void* userData, void (*onLayoutCompleted)(void* userData));
9036 
9037 
9038 /**
9039  * @brief Registers a callback for node when draw is completed.
9040  *
9041  * @param node Indicates the target node.
9042  * @param userData Indicates the custom data used in onDrawCompleted callback function.
9043  * @param onDrawCompleted Indicates the function when draw completed is callback.
9044  * @return error code
9045            {@link ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL} if the operation is successful.
9046  *         {@link ARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER} if a parameter is incorrect.
9047  * @since 15
9048  */
9049 int32_t OH_ArkUI_RegisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle node,
9050     void* userData, void (*onDrawCompleted)(void* userData));
9051 
9052 /**
9053  * @brief Unregisters the layout completed callback for node.
9054  *
9055  * @param node Indicates the target node.
9056  * @return error code
9057            {@link ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL} if the operation is successful.
9058  *         {@link ARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER} if a parameter is incorrect.
9059  * @since 15
9060  */
9061 int32_t OH_ArkUI_UnregisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node);
9062 
9063 /**
9064  * @brief Unregisters the draw completed callback for node.
9065  *
9066  * @param node Indicates the target node.
9067  * @return error code
9068            {@link ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL} if the operation is successful.
9069  *         {@link ARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER} if a parameter is incorrect.
9070  * @since 15
9071  */
9072 int32_t OH_ArkUI_UnregisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle node);
9073 
9074 /**
9075  * @brief Get the snapshot pixelmap for the given node synchronously, will get error if the node is not on the
9076  * tree or is not rendered yet.
9077  * Note: the pixelmap should be released through OH_PixelmapNative_Release when it's not used any more.
9078  *
9079  * @param node Indicates the target node.
9080  * @param snapshotOptions the given configuration for taking snapshot, can be null for using default.
9081  * @param pixelmap Pixelmap pointer created by system, it's the out result.
9082  * @return Returns the result code.
9083  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9084  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9085  *         Returns {@link ARKUI_ERROR_CODE_INTERNAL_ERROR} if the snapshot taking failed will null pixelmap returned.
9086  *         Returns {@link ARKUI_ERROR_CODE_COMPONENT_SNAPSHOT_TIMEOUT} if the snapshot taking is timeout.
9087  * @since 15
9088  */
9089 int32_t OH_ArkUI_GetNodeSnapshot(ArkUI_NodeHandle node, ArkUI_SnapshotOptions* snapshotOptions,
9090     OH_PixelmapNative** pixelmap);
9091 
9092 /**
9093  * @brief Set the cross-language option of the target node handle.
9094  *
9095  * @param node The target node handle.
9096  * @param option The cross-language option {@link ArkUI_CrossLanguageOption}.
9097  * @return Error code.
9098  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9099  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9100  * @since 15
9101  */
9102 int32_t OH_ArkUI_NodeUtils_SetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option);
9103 
9104 /**
9105  * @brief Get the cross-language option of the target node handle.
9106  *
9107  * @param node The target node handle.
9108  * @param option The cross-language option {@link ArkUI_CrossLanguageOption}.
9109  * @return Error code.
9110  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9111  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9112  * @since 15
9113  */
9114 int32_t OH_ArkUI_NodeUtils_GetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option);
9115 
9116 /**
9117  * @brief Obtains the index of the current FrameNode's first child node which is on the tree.
9118  *
9119  * @param node Indicates the target node.
9120  * @param index The index of the subnode.
9121  * @return Error code.
9122  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9123  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9124  * @since 15
9125  */
9126 int32_t OH_ArkUI_NodeUtils_GetFirstChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* index);
9127 
9128 /**
9129  * @brief Obtains the index of the current FrameNode's last child node which is on the tree.
9130  *
9131  * @param node Indicates the target node.
9132  * @param index the index of the subnode.
9133  * @return Error code.
9134  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9135  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9136  * @since 15
9137  */
9138 int32_t OH_ArkUI_NodeUtils_GetLastChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* index);
9139 
9140 /**
9141  * @brief Obtains a subnode by position with the expand mode.
9142  *
9143  * @param node Indicates the target node.
9144  * @param position Indicates the position of the subnode.
9145  * @param subnode The pointer to the subnode.
9146  * @param expandMode Indicates the expand mode. {@link ArkUI_ExpandMode}.
9147  * @return Error code.
9148  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9149  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9150  * @since 15
9151  */
9152 int32_t OH_ArkUI_NodeUtils_GetChildWithExpandMode(ArkUI_NodeHandle node, int32_t position,
9153     ArkUI_NodeHandle* subnode, uint32_t expandMode);
9154 
9155 /**
9156  * @brief Obtain the position of the component layout area relative to the window.
9157  * The relative position of the layout area does not include graphic variation attributes, such as translation.
9158  *
9159  * @param node ArkUI_NodeHandle pointer.
9160  * @param globalOffset The offset value of the component handle relative to the window, in px.
9161  * @return Error code.
9162  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9163  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9164  * @since 15
9165  */
9166 int32_t OH_ArkUI_NodeUtils_GetPositionToParent(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffset);
9167 
9168 #ifdef __cplusplus
9169 };
9170 #endif
9171 
9172 #endif // ARKUI_NATIVE_NODE_H
9173 /** @}*/
9174