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