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