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