• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 /**
17  * @addtogroup ArkUI_NativeModule
18  * @{
19  *
20  * @brief Provides UI capabilities of ArkUI on the native side, such as UI component creation and destruction,
21  * tree node operations, attribute setting, and event listening.
22  *
23  * @since 12
24  */
25 
26 /**
27  * @file native_type.h
28  *
29  * @brief Defines the common types for the native module.
30  *
31  * @library libace_ndk.z.so
32  * @syscap SystemCapability.ArkUI.ArkUI.Full
33  * @since 12
34  */
35 
36 #ifndef ARKUI_NATIVE_TYPE_H
37 #define ARKUI_NATIVE_TYPE_H
38 
39 #ifdef __cplusplus
40 #include <cstdint>
41 #else
42 #include <stdint.h>
43 #endif
44 
45 #include "drawable_descriptor.h"
46 
47 #ifdef __cplusplus
48 extern "C" {
49 #endif
50 
51 /**
52  * @brief Defines the ArkUI native component object.
53  *
54  * @since 12
55  */
56 struct ArkUI_Node;
57 /**
58  * @brief Defines the custom dialog box controller of ArkUI on the native side.
59  *
60  * @since 12
61  */
62 struct ArkUI_NativeDialog;
63 
64 /**
65  * @brief Sets the size constraints of a component during component layout.
66  *
67  * @since 12
68  */
69 typedef struct ArkUI_LayoutConstraint ArkUI_LayoutConstraint;
70 
71 /**
72  * @brief Defines the structure of the component drawing context.
73  *
74  * @since 12
75  */
76 typedef struct ArkUI_DrawContext ArkUI_DrawContext;
77 
78 /**
79  * @brief Defines the pointer to the ArkUI native component object.
80  *
81  * @since 12
82  */
83 typedef struct ArkUI_Node* ArkUI_NodeHandle;
84 
85 /**
86  * @brief Defines the pointer to the custom dialog box controller of ArkUI on the native side.
87  *
88  * @since 12
89  */
90 typedef struct ArkUI_NativeDialog* ArkUI_NativeDialogHandle;
91 
92 /**
93  * @brief 提供ArkUI native UI的上下文实例对象定义。
94  *
95  * @since 12
96  */
97 
98 struct ArkUI_Context;
99 
100 /**
101  * @brief 定义ArkUI native UI的上下文实例对象指针定义。
102  *
103  * @since 12
104  */
105 typedef struct ArkUI_Context* ArkUI_ContextHandle;
106 
107 /**
108  * @brief Defines the pointer type of the ArkUI native node content object.
109  *
110  * @since 12
111  */
112 typedef struct ArkUI_NodeContent* ArkUI_NodeContentHandle;
113 
114 /**
115  * @brief Defines the event callback type.
116  *
117  * @since 12
118  */
119 typedef struct {
120     /** Custom type. */
121     void* userData;
122     /** Event callback. */
123     void (*callback)(void* userData);
124 } ArkUI_ContextCallback;
125 
126 /**
127  * @brief Defines the water flow section configuration.
128  *
129  * @since 12
130  */
131 typedef struct ArkUI_WaterFlowSectionOption ArkUI_WaterFlowSectionOption;
132 
133 /**
134  * @brief Define the configuration information of the Item within the ListitemSwipeActionOption method.
135  *
136  * @since 12
137  */
138 typedef struct ArkUI_ListItemSwipeActionItem ArkUI_ListItemSwipeActionItem;
139 
140 /**
141  * @brief Define the configuration information for the ListitemSwipeActionOption method.
142  *
143  * @since 12
144  */
145 typedef struct ArkUI_ListItemSwipeActionOption ArkUI_ListItemSwipeActionOption;
146 
147 /**
148  * @brief 指定设置在相对容器中子组件的对齐规则。
149  *
150  * @since 12
151  */
152 typedef struct ArkUI_AlignmentRuleOption ArkUI_AlignmentRuleOption;
153 
154 /**
155  * @brief guideLine参数,用于定义guideline的id、方向和位置。
156  *
157  * @since 12
158  */
159 typedef struct ArkUI_GuidelineOption ArkUI_GuidelineOption;
160 
161 /**
162  * @brief barrier参数,用于定义barrier的id、方向和生成时所依赖的组件。
163  *
164  * @since 12
165  */
166 typedef struct ArkUI_BarrierOption ArkUI_BarrierOption;
167 
168 /**
169  * @brief Defines the navigation indicator style for the swiper.
170  *
171  * @since 12
172  */
173 typedef struct ArkUI_SwiperIndicator ArkUI_SwiperIndicator;
174 
175 /**
176  * @brief Defines the digital indicator style for the swiper.
177  *
178  * @since 16
179  */
180 typedef struct ArkUI_SwiperDigitIndicator ArkUI_SwiperDigitIndicator;
181 
182 /**
183  * @brief Defines the arrow style for the swiper.
184  *
185  * @since 16
186  */
187 typedef struct ArkUI_SwiperArrowStyle ArkUI_SwiperArrowStyle;
188 
189 /**
190  * @brief Defines formatted string data objects supported by the text component.
191  *
192  * @since 12
193  */
194 typedef struct ArkUI_StyledString ArkUI_StyledString;
195 
196 /**
197  * @brief Defines image animator frame infomation.
198  *
199  * @since 12
200 */
201 typedef struct ArkUI_ImageAnimatorFrameInfo ArkUI_ImageAnimatorFrameInfo;
202 
203 /**
204  * @brief Define the ChildrenMainSize class information for a List.
205  *
206  * @since 12
207 */
208 typedef struct ArkUI_ListChildrenMainSize ArkUI_ListChildrenMainSize;
209 
210 /**
211  * @brief Define the information of the Custom Property class for custom properties.
212  *
213  * @since 14
214  */
215 typedef struct ArkUI_CustomProperty ArkUI_CustomProperty;
216 
217 /**
218  * @brief Define the information of the HostWindowInfo class for window properties.
219  *
220  * @since 15
221  */
222 typedef struct ArkUI_HostWindowInfo ArkUI_HostWindowInfo;
223 
224 /**
225  * @brief Define ActiveChildenInfo class information.
226  *
227  * @since 14
228  */
229 typedef struct ArkUI_ActiveChildrenInfo ArkUI_ActiveChildrenInfo;
230 
231 /**
232  * @brief Set the linear progress indicator style.
233  *
234  * @since 15
235  */
236 typedef struct ArkUI_ProgressLinearStyleOption ArkUI_ProgressLinearStyleOption;
237 
238 /**
239  * @brief The cross-language option.
240  *
241  * @since 15
242  */
243 typedef struct ArkUI_CrossLanguageOption ArkUI_CrossLanguageOption;
244 
245 /**
246  * @brief Declares the Ability base want.
247  *
248  * @since 20
249  */
250 typedef struct AbilityBase_Want AbilityBase_Want;
251 
252 /**
253  * @brief Define the EmbeddedComponentOption for the EmbeddedComponent.
254  *
255  * @since 20
256  */
257 typedef struct ArkUI_EmbeddedComponentOption ArkUI_EmbeddedComponentOption;
258 
259 /**
260  * @brief Provides the number types of ArkUI in the native code.
261  *
262  * @since 12
263  */
264 typedef union {
265     /** Floating-point type. */
266     float f32;
267     /** Signed integer. */
268     int32_t i32;
269     /** Unsigned integer. */
270     uint32_t u32;
271 } ArkUI_NumberValue;
272 
273 /**
274  * @brief Enumerates the alignment modes.
275  *
276  * @since 12
277  */
278 typedef enum {
279     /** Top start. */
280     ARKUI_ALIGNMENT_TOP_START = 0,
281     /** Top center. */
282     ARKUI_ALIGNMENT_TOP,
283     /** Top end. */
284     ARKUI_ALIGNMENT_TOP_END,
285     /** Vertically centered start. */
286     ARKUI_ALIGNMENT_START,
287     /** Horizontally and vertically centered. */
288     ARKUI_ALIGNMENT_CENTER,
289     /** Vertically centered end. */
290     ARKUI_ALIGNMENT_END,
291     /** Bottom start. */
292     ARKUI_ALIGNMENT_BOTTOM_START,
293     /** Horizontally centered on the bottom. */
294     ARKUI_ALIGNMENT_BOTTOM,
295     /** Bottom end. */
296     ARKUI_ALIGNMENT_BOTTOM_END,
297 } ArkUI_Alignment;
298 
299 /**
300  * @brief Enumerates the image repeat patterns.
301  *
302  * @since 12
303  */
304 typedef enum {
305     /** The image is not repeatedly drawn. */
306     ARKUI_IMAGE_REPEAT_NONE = 0,
307     /** The image is repeatedly drawn only along the x-axis. */
308     ARKUI_IMAGE_REPEAT_X,
309     /** The image is repeatedly drawn only along the y-axis. */
310     ARKUI_IMAGE_REPEAT_Y,
311     /** The image is repeatedly drawn along both axes. */
312     ARKUI_IMAGE_REPEAT_XY,
313 } ArkUI_ImageRepeat;
314 
315 /**
316  * @brief Enumerates the font styles.
317  *
318  * @since 12
319  */
320 typedef enum {
321     /** Standard font style. */
322     ARKUI_FONT_STYLE_NORMAL = 0,
323     /** Italic font style. */
324     ARKUI_FONT_STYLE_ITALIC
325 } ArkUI_FontStyle;
326 
327 /**
328  * @brief Enumerates the font weights.
329  *
330  * @since 12
331  */
332 typedef enum {
333     /** 100 */
334     ARKUI_FONT_WEIGHT_W100 = 0,
335     /** 200 */
336     ARKUI_FONT_WEIGHT_W200,
337     /** 300 */
338     ARKUI_FONT_WEIGHT_W300,
339     /** 400 */
340     ARKUI_FONT_WEIGHT_W400,
341     /** 500 */
342     ARKUI_FONT_WEIGHT_W500,
343     /** 600 */
344     ARKUI_FONT_WEIGHT_W600,
345     /** 700 */
346     ARKUI_FONT_WEIGHT_W700,
347     /** 800 */
348     ARKUI_FONT_WEIGHT_W800,
349     /** 900 */
350     ARKUI_FONT_WEIGHT_W900,
351     /** The font weight is bold. */
352     ARKUI_FONT_WEIGHT_BOLD,
353     /** The font weight is normal. */
354     ARKUI_FONT_WEIGHT_NORMAL,
355     /** The font weight is bolder. */
356     ARKUI_FONT_WEIGHT_BOLDER,
357     /** The font weight is lighter. */
358     ARKUI_FONT_WEIGHT_LIGHTER,
359     /** The font weight is medium. */
360     ARKUI_FONT_WEIGHT_MEDIUM,
361     /** The font weight is normal. */
362     ARKUI_FONT_WEIGHT_REGULAR,
363 } ArkUI_FontWeight;
364 
365 /**
366  * @brief Enumerates the text alignment mode.
367  *
368  * @since 12
369  */
370 typedef enum {
371     /** Aligned with the start. */
372     ARKUI_TEXT_ALIGNMENT_START = 0,
373     /** Horizontally centered. */
374     ARKUI_TEXT_ALIGNMENT_CENTER,
375     /** Aligned with the end. */
376     ARKUI_TEXT_ALIGNMENT_END,
377     /** Aligned with both margins. */
378     ARKUI_TEXT_ALIGNMENT_JUSTIFY,
379 } ArkUI_TextAlignment;
380 
381 /**
382  * @brief 定义文本垂直对齐样式枚举值。
383  *
384  * @since 20
385  */
386 typedef enum {
387     /** 基线对齐。 */
388     ARKUI_TEXT_VERTICAL_ALIGNMENT_BASELINE = 0,
389     /** 底部对齐。 */
390     ARKUI_TEXT_VERTICAL_ALIGNMENT_BOTTOM,
391     /** 居中对齐。 */
392     ARKUI_TEXT_VERTICAL_ALIGNMENT_CENTER,
393     /** 顶部对齐。 */
394     ARKUI_TEXT_VERTICAL_ALIGNMENT_TOP,
395 } ArkUI_TextVerticalAlignment;
396 
397 /**
398  * @brief Enumerates the types of the Enter key for a single-line text box.
399  *
400  * @since 12
401  */
402 typedef enum {
403     /** The Enter key is labeled "Go." */
404     ARKUI_ENTER_KEY_TYPE_GO = 2,
405     /** The Enter key is labeled "Search." */
406     ARKUI_ENTER_KEY_TYPE_SEARCH = 3,
407     /** The Enter key is labeled "Send." */
408     ARKUI_ENTER_KEY_TYPE_SEND,
409     /** The Enter key is labeled "Next." */
410     ARKUI_ENTER_KEY_TYPE_NEXT,
411     /** The Enter key is labeled "Done." */
412     ARKUI_ENTER_KEY_TYPE_DONE,
413     /** The Enter key is labeled "Previous." */
414     ARKUI_ENTER_KEY_TYPE_PREVIOUS,
415     /** The Enter key is labeled "New Line." */
416     ARKUI_ENTER_KEY_TYPE_NEW_LINE,
417 } ArkUI_EnterKeyType;
418 
419 /**
420  * @brief Enumerates the text input types.
421  *
422  * @since 12
423  */
424 typedef enum {
425     /** Normal input mode. */
426     ARKUI_TEXTINPUT_TYPE_NORMAL = 0,
427     /** Number input mode. */
428     ARKUI_TEXTINPUT_TYPE_NUMBER = 2,
429     /** Phone number input mode. */
430     ARKUI_TEXTINPUT_TYPE_PHONE_NUMBER = 3,
431     /** Email address input mode. */
432     ARKUI_TEXTINPUT_TYPE_EMAIL = 5,
433     /** Password input mode. */
434     ARKUI_TEXTINPUT_TYPE_PASSWORD = 7,
435     /** Numeric password input mode. */
436     ARKUI_TEXTINPUT_TYPE_NUMBER_PASSWORD = 8,
437     /** Lock screen password input mode. */
438     ARKUI_TEXTINPUT_TYPE_SCREEN_LOCK_PASSWORD = 9,
439     /** Username input mode. */
440     ARKUI_TEXTINPUT_TYPE_USER_NAME = 10,
441     /** New password input mode. */
442     ARKUI_TEXTINPUT_TYPE_NEW_PASSWORD = 11,
443     /** Number input mode with a decimal point. */
444     ARKUI_TEXTINPUT_TYPE_NUMBER_DECIMAL = 12,
445     /**
446      * One time code input mode.
447      * @since 18
448      */
449     ARKUI_TEXTINPUT_TYPE_ONE_TIME_CODE = 14,
450 } ArkUI_TextInputType;
451 
452 /**
453  * @brief Enumerates the text box types.
454  *
455  * @since 12
456  */
457 typedef enum {
458     /** Normal input mode. */
459     ARKUI_TEXTAREA_TYPE_NORMAL = 0,
460     /** Number input mode. */
461     ARKUI_TEXTAREA_TYPE_NUMBER = 2,
462     /** Phone number input mode. */
463     ARKUI_TEXTAREA_TYPE_PHONE_NUMBER = 3,
464     /** Email address input mode. */
465     ARKUI_TEXTAREA_TYPE_EMAIL = 5,
466     /**
467      * One time code input mode.
468      * @since 18
469      */
470     ARKUI_TEXTAREA_TYPE_ONE_TIME_CODE = 14,
471 } ArkUI_TextAreaType;
472 
473 /**
474  * @brief Enumerates the styles of the Cancel button.
475  *
476  * @since 12
477  */
478 typedef enum {
479     /** The Cancel button is always displayed. */
480     ARKUI_CANCELBUTTON_STYLE_CONSTANT = 0,
481     /** The Cancel button is always hidden. */
482     ARKUI_CANCELBUTTON_STYLE_INVISIBLE,
483     /** The Cancel button is displayed when there is text input. */
484     ARKUI_CANCELBUTTON_STYLE_INPUT,
485 } ArkUI_CancelButtonStyle;
486 
487 /**
488  * @brief Enumerates the types of the <b><XComponent></b> component.
489  *
490  * @since 12
491  */
492 typedef enum {
493     /** The custom content of EGL/OpenGL ES and media data is displayed individually on the screen. */
494     ARKUI_XCOMPONENT_TYPE_SURFACE = 0,
495     /** The custom content of EGL/OpenGL ES and media data is grouped and displayed together with content
496       * of the component.
497       */
498     ARKUI_XCOMPONENT_TYPE_TEXTURE = 2,
499 } ArkUI_XComponentType;
500 
501 /**
502  * @brief Enumerates the styles of the progress indicator.
503  *
504  * @since 12
505  */
506 typedef enum {
507     /** Linear style. */
508     ARKUI_PROGRESS_TYPE_LINEAR = 0,
509     /** Indeterminate ring style. */
510     ARKUI_PROGRESS_TYPE_RING,
511     /** Eclipse style. */
512     ARKUI_PROGRESS_TYPE_ECLIPSE,
513     /** Determinate ring style. */
514     ARKUI_PROGRESS_TYPE_SCALE_RING,
515     /** Capsule style. */
516     ARKUI_PROGRESS_TYPE_CAPSULE,
517 }ArkUI_ProgressType;
518 
519 /**
520  * @brief Enumerates the text decoration types.
521  *
522  * @since 12
523  */
524 typedef enum {
525     /** No text decoration. */
526     ARKUI_TEXT_DECORATION_TYPE_NONE = 0,
527     /** Line under the text. */
528     ARKUI_TEXT_DECORATION_TYPE_UNDERLINE,
529     /** Line over the text. */
530     ARKUI_TEXT_DECORATION_TYPE_OVERLINE,
531     /** Line through the text. */
532     ARKUI_TEXT_DECORATION_TYPE_LINE_THROUGH,
533 } ArkUI_TextDecorationType;
534 
535 /**
536  * @brief Enumerates the text decoration styles.
537  *
538  * @since 12
539  */
540 typedef enum {
541     /** Single solid line. */
542     ARKUI_TEXT_DECORATION_STYLE_SOLID = 0,
543     /** Double solid line. */
544     ARKUI_TEXT_DECORATION_STYLE_DOUBLE,
545     /** Dotted line. */
546     ARKUI_TEXT_DECORATION_STYLE_DOTTED,
547     /** Dashed line. */
548     ARKUI_TEXT_DECORATION_STYLE_DASHED,
549     /** Wavy line. */
550     ARKUI_TEXT_DECORATION_STYLE_WAVY,
551 } ArkUI_TextDecorationStyle;
552 
553 /**
554  * @brief Enumerates the text cases.
555  *
556  * @since 12
557  */
558 typedef enum {
559     /** The original case of the text is retained. */
560     ARKUI_TEXT_CASE_NORMAL = 0,
561     /** All letters in the text are in lowercase. */
562     ARKUI_TEXT_CASE_LOWER,
563     /** All letters in the text are in uppercase. */
564     ARKUI_TEXT_CASE_UPPER,
565 } ArkUI_TextCase;
566 
567 /**
568  * @brief Enumerates the text copy and paste modes.
569  *
570  * @since 12
571  */
572 typedef enum {
573     /** Copy is not allowed. */
574     ARKUI_COPY_OPTIONS_NONE = 0,
575     /** Intra-application copy is allowed. */
576     ARKUI_COPY_OPTIONS_IN_APP,
577     /** Intra-device copy is allowed. */
578     ARKUI_COPY_OPTIONS_LOCAL_DEVICE,
579     /** Cross-device copy is allowed. */
580     ARKUI_COPY_OPTIONS_CROSS_DEVICE,
581 } ArkUI_CopyOptions;
582 
583 /**
584  * @brief Enumerates the shadow types.
585  *
586  * @since 12
587  */
588 typedef enum {
589     /** Color. */
590     ARKUI_SHADOW_TYPE_COLOR = 0,
591     /** Blur. */
592     ARKUI_SHADOW_TYPE_BLUR
593 } ArkUI_ShadowType;
594 
595 /**
596  * @brief Enumerates the modes of the date picker.
597  *
598  * @since 18
599  */
600 typedef enum {
601     /** A mode that displays the date in months, days of month, and years. */
602     ARKUI_DATEPICKER_MODE_DATE = 0,
603     /** A mode that displays the date in months and years. */
604     ARKUI_DATEPICKER_YEAR_AND_MONTH = 1,
605     /** A mode that displays the date in months and days of the month. */
606     ARKUI_DATEPICKER_MONTH_AND_DAY = 2,
607 } ArkUI_DatePickerMode;
608 
609 /**
610  * @brief Enumerates the types of the text picker.
611  *
612  * @since 12
613  */
614 typedef enum {
615     /** Single-column text picker. */
616     ARKUI_TEXTPICKER_RANGETYPE_SINGLE = 0,
617     /** Multi-column text picker. */
618     ARKUI_TEXTPICKER_RANGETYPE_MULTI,
619     /** Single-column text picker with image resources. */
620     ARKUI_TEXTPICKER_RANGETYPE_RANGE_CONTENT,
621     /** Interconnected multi-column text picker. */
622     ARKUI_TEXTPICKER_RANGETYPE_CASCADE_RANGE_CONTENT,
623 } ArkUI_TextPickerRangeType;
624 
625 /**
626  * @brief Defines the input structure of the single-column text picker with image resources.
627  *
628  * @since 12
629  */
630 typedef struct {
631     /** Image resource. */
632     const char* icon;
633     /** Text information. */
634     const char* text;
635 } ARKUI_TextPickerRangeContent;
636 
637 /**
638  * @brief Defines the input structure of the interconnected multi-column text picker.
639  *
640  * @since 12
641  */
642 typedef struct {
643     /** Text information. */
644     const char* text;
645     /** Interconnected data. */
646     const ARKUI_TextPickerRangeContent* children;
647     /** Size of the interconnected data array. */
648     int32_t size;
649 } ARKUI_TextPickerCascadeRangeContent;
650 
651 /**
652  * @brief 定义无障碍复选框状态类型枚举值。
653  *
654  * @since 12
655  */
656 typedef enum {
657     /** 复选框未被选中。*/
658     ARKUI_ACCESSIBILITY_UNCHECKED = 0,
659     /** 复选框被选中。*/
660     ARKUI_ACCESSIBILITY_CHECKED,
661 } ArkUI_AccessibilityCheckedState;
662 
663 
664 /**
665  * @brief Define accessible action types.
666  *
667  * @since 12
668  */
669 typedef enum {
670     /** click action. */
671     ARKUI_ACCESSIBILITY_ACTION_CLICK = 1 << 0,
672     /** long click action. */
673     ARKUI_ACCESSIBILITY_ACTION_LONG_CLICK = 1 << 1,
674     /** cut action. */
675     ARKUI_ACCESSIBILITY_ACTION_CUT = 1 << 2,
676     /** copy action. */
677     ARKUI_ACCESSIBILITY_ACTION_COPY = 1 << 3,
678     /** paste action. */
679     ARKUI_ACCESSIBILITY_ACTION_PASTE = 1 << 4,
680 } ArkUI_AccessibilityActionType;
681 
682 /**
683  * @brief 定义组件无障碍状态。
684  *
685  * @since 12
686  */
687 typedef struct ArkUI_AccessibilityState ArkUI_AccessibilityState;
688 
689 /**
690  * @brief 定义组件无障碍信息值。
691  *
692  * @since 12
693  */
694 typedef struct ArkUI_AccessibilityValue ArkUI_AccessibilityValue;
695 
696 /**
697  * @brief Enumerates the effects used at the edges of the component when the boundary of the
698  * scrollable content is reached.
699  *
700  * @since 12
701  */
702 typedef enum {
703     /** Spring effect. When at one of the edges, the component can move beyond the bounds based on the
704      * initial speed or through touches, and produces a bounce effect when the user releases their finger.
705      */
706     ARKUI_EDGE_EFFECT_SPRING = 0,
707     /** Fade effect. When at one of the edges, the component produces a fade effect. */
708     ARKUI_EDGE_EFFECT_FADE,
709     /** No effect after the scrollbar is moved to the edge. */
710     ARKUI_EDGE_EFFECT_NONE,
711 } ArkUI_EdgeEffect;
712 
713 /**
714  * @brief Enumerates the scroll directions for the <b><Scroll></b> component.
715  *
716  * @since 12
717  */
718 typedef enum {
719     /** Only vertical scrolling is supported. */
720     ARKUI_SCROLL_DIRECTION_VERTICAL = 0,
721     /** Only horizontal scrolling is supported. */
722     ARKUI_SCROLL_DIRECTION_HORIZONTAL,
723     /** Scrolling is not allowed. */
724     ARKUI_SCROLL_DIRECTION_NONE = 3,
725     /**
726      * @brief Scrolling is allowed in both horizontal and vertical directions. Only available in Scroll component.
727      * @since 20
728      */
729     ARKUI_SCROLL_DIRECTION_FREE = 4,
730 } ArkUI_ScrollDirection;
731 
732 /**
733  * @brief Enumerates the alignment modes of list items when scrolling ends.
734  *
735  * @since 12
736  */
737 typedef enum {
738     /** No alignment. This is the default value. */
739     ARKUI_SCROLL_SNAP_ALIGN_NONE = 0,
740     /** The first item in the view is aligned at the start of the list. */
741     ARKUI_SCROLL_SNAP_ALIGN_START,
742     /** The middle items in the view are aligned in the center of the list. */
743     ARKUI_SCROLL_SNAP_ALIGN_CENTER,
744     /** The last item in the view is aligned at the end of the list. */
745     ARKUI_SCROLL_SNAP_ALIGN_END,
746 } ArkUI_ScrollSnapAlign;
747 
748 /**
749  * @brief Enumerates the scrollbar display modes.
750  *
751  * @since 12
752  */
753 typedef enum {
754     /** Hide. */
755     ARKUI_SCROLL_BAR_DISPLAY_MODE_OFF = 0,
756     /** Display on demand (displays when the screen is touched and disappears after 2s). */
757     ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO,
758     /** Always display. */
759     ARKUI_SCROLL_BAR_DISPLAY_MODE_ON,
760 } ArkUI_ScrollBarDisplayMode;
761 
762 /**
763  * @brief Enumerates the scroll directions for the <b><List></b> component.
764  *
765  * @since 12
766  */
767 typedef enum {
768     /** Only vertical scrolling is supported. */
769     ARKUI_AXIS_VERTICAL = 0,
770     /** Only horizontal scrolling is supported. */
771     ARKUI_AXIS_HORIZONTAL,
772 } ArkUI_Axis;
773 
774 /**
775  * @brief Enumerates the modes for pinning the header to the top or the footer to the bottom.
776  *
777  * @since 12
778  */
779 typedef enum {
780     /** In the list item group, the header is not pinned to the top, and the footer is not pinned to the bottom. */
781     ARKUI_STICKY_STYLE_NONE = 0,
782     /** In the list item group, the header is pinned to the top, and the footer is not pinned to the bottom. */
783     ARKUI_STICKY_STYLE_HEADER = 1,
784     /** In the list item group, the footer is pinned to the bottom, and the header is not pinned to the top. */
785     ARKUI_STICKY_STYLE_FOOTER = 2,
786     /** In the list item group, the footer is pinned to the bottom, and the header is pinned to the top. */
787     ARKUI_STICKY_STYLE_BOTH = 3,
788 } ArkUI_StickyStyle;
789 
790 /**
791  * @brief Enumerates the content clipping modes of scrollable components.
792  *
793  * @since 16
794  */
795 typedef enum {
796     /** Clip to the content area only. */
797     ARKUI_CONTENT_CLIP_MODE_CONTENT_ONLY = 0,
798     /** Clip to the component's boundary area. */
799     ARKUI_CONTENT_CLIP_MODE_BOUNDARY,
800     /** Clip to the safe area configured for the component. */
801     ARKUI_CONTENT_CLIP_MODE_SAFE_AREA,
802 } ArkUI_ContentClipMode;
803 
804 /**
805  * @brief Enumerates the layout modes of the <b>WaterFlow</b> component.
806  *
807  * @since 16
808  */
809 typedef enum {
810     /** Layout from top to bottom. In scenarios where column switching occurs, the layout starts from the first water
811      *  flow item to the currently displayed water flow item. */
812     ARKUI_WATER_FLOW_LAYOUT_MODE_ALWAYS_TOP_DOWN = 0,
813     /** Sliding window layout. In scenarios where column switching occurs, only the range of water flow items currently
814      * on display is re-laid out. As the user scrolls down with their finger, water flow items that enter the display
815      * range from above are subsequently laid out. */
816     ARKUI_WATER_FLOW_LAYOUT_MODE_SLIDING_WINDOW,
817 } ArkUI_WaterFlowLayoutMode;
818 
819 /**
820  * @brief Enumerates the border styles.
821  *
822  * @since 12
823  */
824 typedef enum {
825     /** Solid border. */
826     ARKUI_BORDER_STYLE_SOLID = 0,
827     /** Dashed border. */
828     ARKUI_BORDER_STYLE_DASHED,
829     /** Dotted border. */
830     ARKUI_BORDER_STYLE_DOTTED,
831 } ArkUI_BorderStyle;
832 
833 /**
834  * @brief Enumerates the hit test modes.
835  *
836  * @since 12
837  */
838 typedef enum {
839     /** Both the node and its child node respond to the hit test of a touch event,
840      * but its sibling node is blocked from the hit test.
841      */
842     ARKUI_HIT_TEST_MODE_DEFAULT = 0,
843     /** The node responds to the hit test of a touch event, but its child node and sibling node are blocked from
844      * the hit test.
845      */
846     ARKUI_HIT_TEST_MODE_BLOCK,
847     /** Both the node and its child node respond to the hit test of a touch event, and its sibling node is also
848      * considered during the hit test.
849      */
850     ARKUI_HIT_TEST_MODE_TRANSPARENT,
851     /** The node does not respond to the hit test of a touch event. */
852     ARKUI_HIT_TEST_MODE_NONE,
853     /**
854      * Blocks all lower priority siblings and parents node from receiving the event.
855      * @since 20
856      */
857     ARKUI_HIT_TEST_MODE_BLOCK_HIERARCHY,
858     /**
859      * Self not respond to the hit test for touch events,
860      * and all descendants (children, grandchildren, etc.) not respond to the hit test for touch events too.
861      * @since 20
862      */
863     ARKUI_HIT_TEST_MODE_BLOCK_DESCENDANTS,
864 } ArkUI_HitTestMode;
865 
866 /**
867  * @brief Enumerates the shadow styles.
868  *
869  * @since 12
870  */
871 typedef enum {
872     /** Mini shadow. */
873     ARKUI_SHADOW_STYLE_OUTER_DEFAULT_XS = 0,
874     /** Little shadow. */
875     ARKUI_SHADOW_STYLE_OUTER_DEFAULT_SM,
876     /** Medium shadow. */
877     ARKUI_SHADOW_STYLE_OUTER_DEFAULT_MD,
878     /** Large shadow. */
879     ARKUI_SHADOW_STYLE_OUTER_DEFAULT_LG,
880     /** Floating small shadow. */
881     ARKUI_SHADOW_STYLE_OUTER_FLOATING_SM,
882     /** Floating medium shadow. */
883     ARKUI_SHADOW_STYLE_OUTER_FLOATING_MD,
884 } ArkUI_ShadowStyle;
885 
886 /**
887  * @brief Enumerates the animation curves.
888  *
889  * @since 12
890  */
891 typedef enum {
892     /** The animation speed keeps unchanged. */
893     ARKUI_CURVE_LINEAR = 0,
894     /** The animation starts slowly, accelerates, and then slows down towards the end. */
895     ARKUI_CURVE_EASE,
896     /** The animation starts at a low speed and then picks up speed until the end. */
897     ARKUI_CURVE_EASE_IN,
898     /** The animation ends at a low speed. */
899     ARKUI_CURVE_EASE_OUT,
900     /** The animation starts and ends at a low speed. */
901     ARKUI_CURVE_EASE_IN_OUT,
902     /** The animation uses the standard curve */
903     ARKUI_CURVE_FAST_OUT_SLOW_IN,
904     /** The animation uses the deceleration curve. */
905     ARKUI_CURVE_LINEAR_OUT_SLOW_IN,
906     /** The animation uses the acceleration curve. */
907     ARKUI_CURVE_FAST_OUT_LINEAR_IN,
908     /** The animation uses the extreme deceleration curve. */
909     ARKUI_CURVE_EXTREME_DECELERATION,
910     /** The animation uses the sharp curve. */
911     ARKUI_CURVE_SHARP,
912     /** The animation uses the rhythm curve. */
913     ARKUI_CURVE_RHYTHM,
914     /** The animation uses the smooth curve. */
915     ARKUI_CURVE_SMOOTH,
916     /** The animation uses the friction curve */
917     ARKUI_CURVE_FRICTION,
918 } ArkUI_AnimationCurve;
919 
920 /**
921  * @brief Enumerates arrow styles of the navigation point indicator.
922  *
923  * @since 12
924  */
925 typedef enum {
926     /** The arrow is not displayed for the navigation point indicator. */
927     ARKUI_SWIPER_ARROW_HIDE = 0,
928     /** The arrow is displayed for the navigation point indicator. */
929     ARKUI_SWIPER_ARROW_SHOW,
930     /** The arrow is displayed only when the mouse pointer hovers over the navigation point indicator. */
931     ARKUI_SWIPER_ARROW_SHOW_ON_HOVER,
932 } ArkUI_SwiperArrow;
933 
934 /**
935  * @brief Nested scrolling mode for Swiper components and parent components.
936  *
937  * @since 12
938  */
939 typedef enum {
940     /** Swiper only scrolls on its own and is not linked to its parent component. */
941     ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY = 0,
942     /** The Swiper itself scrolls first, and the parent component scrolls after it reaches the edge. After the parent
943      * component scrolls to the edge, if the parent component has an edge effect, the parent component triggers the edge
944      * effect; otherwise, the Swiper triggers the edge effect. */
945     ARKUI_SWIPER_NESTED_SRCOLL_SELF_FIRST,
946 } ArkUI_SwiperNestedScrollMode;
947 
948 /**
949  * @brief Enumerates the page flipping modes using the mouse wheel for the <b>Swiper</b> component.
950  *
951  * @since 15
952  */
953 typedef enum {
954     /** When the mouse wheel is scrolled continuously, multiple pages are flipped, which is determined by the number of
955      *  times that mouse events are reported. */
956     ARKUI_PAGE_FLIP_MODE_CONTINUOUS = 0,
957     /** The system does not respond to other mouse wheel events until the page flipping animation ends. */
958     ARKUI_PAGE_FLIP_MODE_SINGLE,
959 } ArkUI_PageFlipMode;
960 
961 /**
962  * @brief Enumerates the accessibility modes.
963  *
964  * @since 12
965  */
966 typedef enum {
967     /** Whether the component can be identified by the accessibility service is dependent on the component. */
968     ARKUI_ACCESSIBILITY_MODE_AUTO = 0,
969     /** The component can be identified by the accessibility service. */
970     ARKUI_ACCESSIBILITY_MODE_ENABLED,
971     /** The component cannot be identified by the accessibility service. */
972     ARKUI_ACCESSIBILITY_MODE_DISABLED,
973     /** The component and all its child components cannot be identified by the accessibility service. */
974     ARKUI_ACCESSIBILITY_MODE_DISABLED_FOR_DESCENDANTS,
975 } ArkUI_AccessibilityMode;
976 
977 /**
978  * @brief Defines whether copy and paste is allowed for text content.
979  *
980  * @since 12
981  */
982 typedef enum {
983     /** Copy is not allowed. */
984     ARKUI_TEXT_COPY_OPTIONS_NONE = 0,
985     /** Intra-application copy is allowed. */
986     ARKUI_TEXT_COPY_OPTIONS_IN_APP,
987     /** Intra-device copy is allowed. */
988     ARKUI_TEXT_COPY_OPTIONS_LOCAL_DEVICE,
989     /** Cross-device copy is allowed. */
990     ARKUI_TEXT_COPY_OPTIONS_CROSS_DEVICE,
991 } ArkUI_TextCopyOptions;
992 
993 
994 /**
995  * @brief Defines how the adaptive height is determined for the text.
996  *
997  * @since 12
998  */
999 typedef enum {
1000     /** Prioritize the <b>maxLines</b> settings. */
1001     ARKUI_TEXT_HEIGHT_ADAPTIVE_POLICY_MAX_LINES_FIRST = 0,
1002     /** Prioritize the <b>minFontSize</b> settings. */
1003     ARKUI_TEXT_HEIGHT_ADAPTIVE_POLICY_MIN_FONT_SIZE_FIRST,
1004     /** Prioritize the layout constraint settings in terms of height. */
1005     ARKUI_TEXT_HEIGHT_ADAPTIVE_POLICY_LAYOUT_CONSTRAINT_FIRST,
1006 } ArkUI_TextHeightAdaptivePolicy;
1007 
1008 
1009 /**
1010  * @brief Defines nested scrolling options.
1011  *
1012  * @since 12
1013  */
1014 typedef enum {
1015     /** The scrolling is contained within the component, and no scroll chaining occurs, that is, the parent component
1016      * does not scroll when the component scrolling reaches the boundary.
1017      */
1018     ARKUI_SCROLL_NESTED_MODE_SELF_ONLY = 0,
1019     /** The component scrolls first, and when it hits the boundary, the parent component scrolls.
1020      * When the parent component hits the boundary, its edge effect is displayed. If no edge effect is specified for
1021      * the parent component, the edge effect of the child component is displayed instead.
1022      */
1023     ARKUI_SCROLL_NESTED_MODE_SELF_FIRST,
1024     /** The parent component scrolls first, and when it hits the boundary, the component scrolls.
1025      * When the component hits the boundary, its edge effect is displayed. If no edge effect is specified for the
1026      * component, the edge effect of the parent component is displayed instead.
1027      */
1028     ARKUI_SCROLL_NESTED_MODE_PARENT_FIRST,
1029     /** The component and its parent component scroll at the same time. When both the component and its parent component
1030      * hit the boundary, the edge effect of the component is displayed. If no edge effect is specified for the
1031      * component, the edge effect of the parent component is displayed instead.
1032      */
1033     ARKUI_SCROLL_NESTED_MODE_PARALLEL,
1034 } ArkUI_ScrollNestedMode;
1035 
1036 
1037 /**
1038  * @brief Defines the edge to which the component scrolls.
1039  *
1040  * @since 12
1041  */
1042 typedef enum {
1043     /** Top edge in the vertical direction. */
1044     ARKUI_SCROLL_EDGE_TOP = 0,
1045     /** Bottom edge in the vertical direction. */
1046     ARKUI_SCROLL_EDGE_BOTTOM,
1047     /** Start position in the horizontal direction. */
1048     ARKUI_SCROLL_EDGE_START,
1049     /** End position in the horizontal direction. */
1050     ARKUI_SCROLL_EDGE_END,
1051 } ArkUI_ScrollEdge;
1052 
1053 
1054 /**
1055  * @brief Alignment when scrolling to specific items.
1056  *
1057  * @since 12
1058  */
1059 typedef enum {
1060     /** Align the head. Align the head of the specified item with the head of the container.*/
1061     ARKUI_SCROLL_ALIGNMENT_START = 0,
1062     /** Center alignment. Align the axis direction of the specified item to the center of the container.*/
1063     ARKUI_SCROLL_ALIGNMENT_CENTER,
1064     /** Tail alignment. Align the tail of the specified item with the tail of the container.*/
1065     ARKUI_SCROLL_ALIGNMENT_END,
1066     /** Automatic alignment. If the specified item is completely in the display area, no adjustments will be made.
1067      * Otherwise, according to the principle of the shortest sliding distance, align the head or tail of the specified
1068      * item with the container, so that the specified item is completely in the display area.*/
1069     ARKUI_SCROLL_ALIGNMENT_AUTO,
1070     /** None alignment. Use default alignment by default*/
1071     ARKUI_SCROLL_ALIGNMENT_NONE,
1072 } ArkUI_ScrollAlignment;
1073 
1074 /**
1075  * @brief Define the current scrolling state.
1076  *
1077  * @since 12
1078  */
1079 typedef enum {
1080     /** Idle state. Trigger when using the method provided by the controller to control scrolling, and trigger when
1081      * dragging the scroll bar to scroll.*/
1082     ARKUI_SCROLL_STATE_IDLE = 0,
1083     /** Scroll state. Triggered when dragging the container with fingers to scroll.*/
1084     ARKUI_SCROLL_STATE_SCROLL,
1085     /** Inertial rolling state. Triggered when inertia rolling and bouncing back to the edge are performed after
1086      * releasing the hand quickly.*/
1087     ARKUI_SCROLL_STATE_FLING,
1088 } ArkUI_ScrollState;
1089 
1090 /**
1091  * @brief Enumerates the types of the slider in the block direction.
1092  *
1093  * @since 12
1094  */
1095 typedef enum {
1096     /** Round slider. */
1097     ARKUI_SLIDER_BLOCK_STYLE_DEFAULT = 0,
1098     /** Slider with an image background. */
1099     ARKUI_SLIDER_BLOCK_STYLE_IMAGE,
1100     /** Slider in a custom shape. */
1101     ARKUI_SLIDER_BLOCK_STYLE_SHAPE,
1102 } ArkUI_SliderBlockStyle;
1103 
1104 /**
1105  * @brief Enumerates the scroll directions of the slider.
1106  *
1107  * @since 12
1108  */
1109 typedef enum {
1110     /** Vertical direction. */
1111     ARKUI_SLIDER_DIRECTION_VERTICAL = 0,
1112     /** Horizontal direction. */
1113     ARKUI_SLIDER_DIRECTION_HORIZONTAL,
1114 } ArkUI_SliderDirection;
1115 
1116 /**
1117  * @brief Enumerates the slider styles.
1118  *
1119  * @since 12
1120  */
1121 typedef enum {
1122     /** The slider is on the slider track. */
1123     ARKUI_SLIDER_STYLE_OUT_SET = 0,
1124     /** The slider is in the slider track. */
1125     ARKUI_SLIDER_STYLE_IN_SET,
1126     /** No slider. */
1127     ARKUI_SLIDER_STYLE_NONE,
1128 } ArkUI_SliderStyle;
1129 
1130 /**
1131  * @brief Enumerates the shapes of the check box
1132  *
1133  * @since 12
1134  */
1135 typedef enum {
1136     /** Circle. */
1137     ArkUI_CHECKBOX_SHAPE_CIRCLE = 0,
1138     /** Rounded square. */
1139     ArkUI_CHECKBOX_SHAPE_ROUNDED_SQUARE,
1140 } ArkUI_CheckboxShape;
1141 
1142 /**
1143  * @brief Enumerates the animation playback modes.
1144  *
1145  * @since 12
1146  */
1147 typedef enum {
1148     /** The animation is played forwards. */
1149     ARKUI_ANIMATION_PLAY_MODE_NORMAL = 0,
1150     /** The animation is played reversely. */
1151     ARKUI_ANIMATION_PLAY_MODE_REVERSE,
1152     /** The animation is played normally for an odd number of times (1, 3, 5...) and reversely for an even number of
1153      * times (2, 4, 6...).
1154      */
1155     ARKUI_ANIMATION_PLAY_MODE_ALTERNATE,
1156     /** The animation is played reversely for an odd number of times (1, 3, 5...) and normally for an even number of
1157      * times (2, 4, 6...).
1158      */
1159     ARKUI_ANIMATION_PLAY_MODE_ALTERNATE_REVERSE,
1160 } ArkUI_AnimationPlayMode;
1161 
1162 /**
1163  * @brief Defines the image size.
1164  *
1165  * @since 12
1166  */
1167 typedef enum {
1168     /** The original image aspect ratio is retained. */
1169     ARKUI_IMAGE_SIZE_AUTO = 0,
1170     /** Default value. The image is scaled with its aspect ratio retained for both sides to be greater than or equal to
1171      * the display boundaries.
1172      */
1173     ARKUI_IMAGE_SIZE_COVER,
1174     /** The image is scaled with its aspect ratio retained for the content to be completely displayed within the
1175      * display boundaries.
1176      */
1177     ARKUI_IMAGE_SIZE_CONTAIN,
1178 } ArkUI_ImageSize;
1179 
1180 /**
1181  * @brief Enumerates the adaptive color modes.
1182  *
1183  * @since 12
1184  */
1185 typedef enum {
1186     /** Adaptive color mode is not used. */
1187     ARKUI_ADAPTIVE_COLOR_DEFAULT = 0,
1188     /** Adaptive color mode is used. */
1189     ARKUI_ADAPTIVE_COLOR_AVERAGE,
1190 } ArkUI_AdaptiveColor;
1191 
1192 /**
1193  * @brief Enumerates the color modes.
1194  *
1195  * @since 12
1196  */
1197 typedef enum {
1198     /** Following the system color mode. */
1199     ARKUI_COLOR_MODE_SYSTEM = 0,
1200     /** Light color mode. */
1201     ARKUI_COLOR_MODE_LIGHT,
1202     /** Dark color mode. */
1203     ARKUI_COLOR_MODE_DARK,
1204 } ArkUI_ColorMode;
1205 
1206 /**
1207  * @brief Enumerates the activation policies for the background blur effect.
1208  *
1209  * @since 19
1210  */
1211 typedef enum {
1212     /** The blur effect changes according to the window's focus state;
1213      *  it is inactive when the window is not in focus and active when the window is in focus. */
1214     ARKUI_BLUR_STYLE_ACTIVE_POLICY_FOLLOWS_WINDOW_ACTIVE_STATE = 0,
1215     /** The blur effect is always active. */
1216     ARKUI_BLUR_STYLE_ACTIVE_POLICY_ALWAYS_ACTIVE,
1217     /** The blur effect is always inactive. */
1218     ARKUI_BLUR_STYLE_ACTIVE_POLICY_ALWAYS_INACTIVE,
1219 } ArkUI_BlurStyleActivePolicy;
1220 
1221 /**
1222  * @brief Enumerates the system color modes.
1223  *
1224  * @since 12
1225  */
1226 typedef enum {
1227     /** Light color mode. */
1228     ARKUI_SYSTEM_COLOR_MODE_LIGHT = 0,
1229     /** Dark color mode. */
1230     ARKUI_SYSTEM_COLOR_MODE_DARK,
1231 } ArkUI_SystemColorMode;
1232 
1233 /**
1234  * @brief Enumerates the blur styles.
1235  *
1236  * @since 12
1237  */
1238 typedef enum {
1239     /** Thin material. */
1240     ARKUI_BLUR_STYLE_THIN = 0,
1241     /** Regular material. */
1242     ARKUI_BLUR_STYLE_REGULAR,
1243     /** Thick material. */
1244     ARKUI_BLUR_STYLE_THICK,
1245     /** Material that creates the minimum depth of field effect. */
1246     ARKUI_BLUR_STYLE_BACKGROUND_THIN,
1247     /** Material that creates a medium shallow depth of field effect. */
1248     ARKUI_BLUR_STYLE_BACKGROUND_REGULAR,
1249     /** Material that creates a high shallow depth of field effect. */
1250     ARKUI_BLUR_STYLE_BACKGROUND_THICK,
1251     /** Material that creates the maximum depth of field effect. */
1252     ARKUI_BLUR_STYLE_BACKGROUND_ULTRA_THICK,
1253     /** No blur. */
1254     ARKUI_BLUR_STYLE_NONE,
1255     /** Component ultra-thin material. */
1256     ARKUI_BLUR_STYLE_COMPONENT_ULTRA_THIN,
1257     /** Component thin material. */
1258     ARKUI_BLUR_STYLE_COMPONENT_THIN,
1259     /** Component regular material. */
1260     ARKUI_BLUR_STYLE_COMPONENT_REGULAR,
1261     /** Component thick material. */
1262     ARKUI_BLUR_STYLE_COMPONENT_THICK,
1263     /** Component ultra-thick material. */
1264     ARKUI_BLUR_STYLE_COMPONENT_ULTRA_THICK,
1265 } ArkUI_BlurStyle;
1266 
1267 /**
1268  * @brief Enumerates the vertical alignment modes.
1269  *
1270  * @since 12
1271  */
1272 typedef enum {
1273     /** Top aligned. */
1274     ARKUI_VERTICAL_ALIGNMENT_TOP = 0,
1275     /** Center aligned. This is the default alignment mode. */
1276     ARKUI_VERTICAL_ALIGNMENT_CENTER,
1277     /** Bottom aligned. */
1278     ARKUI_VERTICAL_ALIGNMENT_BOTTOM,
1279 } ArkUI_VerticalAlignment;
1280 
1281 /**
1282  * @brief Enumerates the alignment mode in the horizontal direction.
1283  *
1284  * @since 12
1285  */
1286 typedef enum {
1287     /** Aligned with the start edge in the same direction as the language in use. */
1288     ARKUI_HORIZONTAL_ALIGNMENT_START = 0,
1289     /** Center aligned. This is the default alignment mode. */
1290     ARKUI_HORIZONTAL_ALIGNMENT_CENTER,
1291     /** Aligned with the end edge in the same direction as the language in use. */
1292     ARKUI_HORIZONTAL_ALIGNMENT_END,
1293 } ArkUI_HorizontalAlignment;
1294 
1295 /**
1296  * @brief Enumerates the display modes when the text is too long.
1297  *
1298  * @since 12
1299  */
1300 typedef enum {
1301     /** Extra-long text is not clipped. */
1302     ARKUI_TEXT_OVERFLOW_NONE = 0,
1303     /** Extra-long text is clipped. */
1304     ARKUI_TEXT_OVERFLOW_CLIP,
1305     /** An ellipsis (...) is used to represent text overflow. */
1306     ARKUI_TEXT_OVERFLOW_ELLIPSIS,
1307     /** Text continuously scrolls when text overflow occurs. */
1308     ARKUI_TEXT_OVERFLOW_MARQUEE,
1309 } ArkUI_TextOverflow;
1310 
1311 /**
1312  * @brief Enumerates the alignment mode of the image with the text.
1313  *
1314  * @since 12
1315  */
1316 typedef enum {
1317     /** The image is bottom aligned with the text baseline. */
1318     ARKUI_IMAGE_SPAN_ALIGNMENT_BASELINE = 0,
1319     /** The image is bottom aligned with the text. */
1320     ARKUI_IMAGE_SPAN_ALIGNMENT_BOTTOM,
1321     /** The image is centered aligned with the text. */
1322     ARKUI_IMAGE_SPAN_ALIGNMENT_CENTER,
1323     /** The image is top aligned with the text. */
1324     ARKUI_IMAGE_SPAN_ALIGNMENT_TOP,
1325     /** The image follow with the text's alignment. */
1326     ARKUI_IMAGE_SPAN_ALIGNMENT_FOLLOW_PARAGRAPH,
1327 } ArkUI_ImageSpanAlignment;
1328 
1329 /**
1330  * @brief Defines how the image is resized to fit its container.
1331  *ImageSpanAlignment
1332  * @since 12
1333  */
1334 typedef enum {
1335     /** The image is scaled with its aspect ratio retained for the content to be completely displayed within the
1336      * display boundaries.
1337      */
1338     ARKUI_OBJECT_FIT_CONTAIN = 0,
1339     /** The image is scaled with its aspect ratio retained for both sides to be greater than or equal to the
1340      * display boundaries.
1341      */
1342     ARKUI_OBJECT_FIT_COVER,
1343     /** The image is scaled automatically to fit the display area. */
1344     ARKUI_OBJECT_FIT_AUTO,
1345     /** The image is scaled to fill the display area, and its aspect ratio is not retained. */
1346     ARKUI_OBJECT_FIT_FILL,
1347     /** The image content is displayed with its aspect ratio retained. The size is smaller than or equal to the
1348      * original size.
1349      */
1350     ARKUI_OBJECT_FIT_SCALE_DOWN,
1351     /** The original size is retained. */
1352     ARKUI_OBJECT_FIT_NONE,
1353     /** Not resized, the image is aligned with the start edge of the top of the container. */
1354     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_TOP_START,
1355     /** Not resized, the image is horizontally centered at the top of the container. */
1356     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_TOP,
1357     /** Not resized, the image is aligned with the end edge at the top of the container. */
1358     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_TOP_END,
1359     /** Not resized, the image is vertically centered on the start edge of the container. */
1360     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_START,
1361     /** Not resized, the image is horizontally and vertically centered in the container. */
1362     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_CENTER,
1363     /** Not resized, the image is vertically centered on the end edge of the container. */
1364     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_END,
1365     /** Not resized, the image is aligned with the start edge at the bottom of the container. */
1366     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_BOTTOM_START,
1367     /** Not resized, the image is horizontally centered at the bottom of the container. */
1368     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_BOTTOM,
1369     /** Not resized, the image is aligned with the end edge at the bottom of the container. */
1370     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_BOTTOM_END,
1371 } ArkUI_ObjectFit;
1372 
1373 /**
1374  * @brief Enumerates the image interpolation effect.
1375  *
1376  * @since 12
1377  */
1378 typedef enum {
1379     /** No image interpolation. */
1380     ARKUI_IMAGE_INTERPOLATION_NONE = 0,
1381     /** Low quality interpolation. */
1382     ARKUI_IMAGE_INTERPOLATION_LOW,
1383     /** Medium quality interpolation. */
1384     ARKUI_IMAGE_INTERPOLATION_MEDIUM,
1385     /** High quality interpolation. This mode produces scaled images of the highest possible quality. */
1386     ARKUI_IMAGE_INTERPOLATION_HIGH,
1387 } ArkUI_ImageInterpolation;
1388 
1389 /**
1390  * @brief Enumerates the image dynamic range mode.
1391  *
1392  * @since 21
1393  */
1394 typedef enum {
1395     /** high dynamic range mode. */
1396     ARKUI_DYNAMIC_RANGE_MODE_HIGH = 0,
1397     /** constraint dynamic range mode. */
1398     ARKUI_DYNAMIC_RANGE_MODE_CONSTRAINT,
1399     /** standard dynamic range mode. */
1400     ARKUI_DYNAMIC_RANGE_MODE_STANDARD,
1401 } ArkUI_DynamicRangeMode;
1402 
1403 /**
1404  * @brief Enumerates the image rotate orientation.
1405  *
1406  * @since 21
1407  */
1408 typedef enum {
1409     /** Use EXIF metadata for display orientation, with support for rotation and mirroring. */
1410     ARKUI_ORIENTATION_AUTO = 0,
1411     /** Display original pixel data without transformation. */
1412     ARKUI_ORIENTATION_UP,
1413     /** Display the image after rotating it 90 degrees clockwise. */
1414     ARKUI_ORIENTATION_RIGHT,
1415     /** Display the image after rotating it 180 degrees clockwise. */
1416     ARKUI_ORIENTATION_DOWN,
1417     /** Display the image after rotating it 270 degrees clockwise. */
1418     ARKUI_ORIENTATION_LEFT,
1419     /** Display the image after flipping it horizontally. */
1420     ARKUI_ORIENTATION_UP_MIRRORED,
1421     /** Display the image after flipping it horizontally and then rotating it 90 degrees clockwise. */
1422     ARKUI_ORIENTATION_RIGHT_MIRRORED,
1423     /** Display the image after flipping it vertically. */
1424     ARKUI_ORIENTATION_DOWN_MIRRORED,
1425     /** Display the image after flipping it horizontally and then rotating it 270 degrees clockwise. */
1426     ARKUI_ORIENTATION_LEFT_MIRRORED,
1427 } ArkUI_ImageRotateOrientation;
1428 
1429 /**
1430  * @brief Enumerates the blend modes.
1431  *
1432  * @since 12
1433  */
1434 typedef enum {
1435     /** The top image is superimposed on the bottom image without any blending. */
1436     ARKUI_BLEND_MODE_NONE = 0,
1437     /** The target pixels covered by the source pixels are erased by being turned to completely transparent. */
1438     ARKUI_BLEND_MODE_CLEAR,
1439     /** r = s: Only the source pixels are displayed. */
1440     ARKUI_BLEND_MODE_SRC,
1441     /** r = d: Only the target pixels are displayed. */
1442     ARKUI_BLEND_MODE_DST,
1443     /** r = s + (1 - sa) * d: The source pixels are blended based on opacity and cover the target pixels. */
1444     ARKUI_BLEND_MODE_SRC_OVER,
1445     /** r = d + (1 - da) * s: The target pixels are blended based on opacity and cover on the source pixels. */
1446     ARKUI_BLEND_MODE_DST_OVER,
1447     /** r = s * da: Only the part of the source pixels that overlap with the target pixels is displayed. */
1448     ARKUI_BLEND_MODE_SRC_IN,
1449     /** r = d * sa: Only the part of the target pixels that overlap with the source pixels is displayed. */
1450     ARKUI_BLEND_MODE_DST_IN,
1451     /** r = s * (1 - da): Only the part of the source pixels that do not overlap with the target pixels is displayed. */
1452     ARKUI_BLEND_MODE_SRC_OUT,
1453     /** r = d * (1 - sa): Only the part of the target pixels that do not overlap with the source pixels is displayed. */
1454     ARKUI_BLEND_MODE_DST_OUT,
1455     /** r = s * da + d * (1 - sa): The part of the source pixels that overlap with the target pixels is displayed and
1456      * the part of the target pixels that do not overlap with the source pixels are displayed.
1457      */
1458     ARKUI_BLEND_MODE_SRC_ATOP,
1459     /** r = d * sa + s * (1 - da): The part of the target pixels that overlap with the source pixels and the part of
1460      * the source pixels that do not overlap with the target pixels are displayed.
1461      */
1462     ARKUI_BLEND_MODE_DST_ATOP,
1463     /** r = s * (1 - da) + d * (1 - sa): Only the non-overlapping part between the source pixels and the target pixels
1464      * is displayed.
1465      */
1466     ARKUI_BLEND_MODE_XOR,
1467     /** r = min(s + d, 1): New pixels resulting from adding the source pixels to the target pixels are displayed. */
1468     ARKUI_BLEND_MODE_PLUS,
1469     /** r = s * d: New pixels resulting from multiplying the source pixels with the target pixels are displayed. */
1470     ARKUI_BLEND_MODE_MODULATE,
1471     /** r = s + d - s * d: Pixels are blended by adding the source pixels to the target pixels and subtracting the
1472      * product of their multiplication.
1473      */
1474     ARKUI_BLEND_MODE_SCREEN,
1475     /** The MULTIPLY or SCREEN mode is used based on the target pixels. */
1476     ARKUI_BLEND_MODE_OVERLAY,
1477     /** rc = s + d - max(s * da, d * sa), ra = kSrcOver: When two colors overlap, whichever is darker is used. */
1478     ARKUI_BLEND_MODE_DARKEN,
1479     /** rc = s + d - min(s * da, d * sa), ra =
1480      * kSrcOver: The final pixels are composed of the lightest values of pixels.
1481      */
1482     ARKUI_BLEND_MODE_LIGHTEN,
1483     /** The colors of the target pixels are lightened to reflect the source pixels. */
1484     ARKUI_BLEND_MODE_COLOR_DODGE,
1485     /** The colors of the target pixels are darkened to reflect the source pixels. */
1486     ARKUI_BLEND_MODE_COLOR_BURN,
1487     /** The MULTIPLY or SCREEN mode is used, depending on the source pixels. */
1488     ARKUI_BLEND_MODE_HARD_LIGHT,
1489     /** The LIGHTEN or DARKEN mode is used, depending on the source pixels. */
1490     ARKUI_BLEND_MODE_SOFT_LIGHT,
1491     /** rc = s + d - 2 * (min(s * da, d * sa)), ra =
1492        kSrcOver: The final pixel is the result of subtracting the darker of the two pixels (source and target) from
1493        the lighter one. */
1494     ARKUI_BLEND_MODE_DIFFERENCE,
1495     /** rc = s + d - two(s * d), ra = kSrcOver: The final pixel is similar to <b>DIFFERENCE</b>, but with less contrast.
1496      */
1497     ARKUI_BLEND_MODE_EXCLUSION,
1498     /** r = s * (1 - da) + d * (1 - sa) + s * d: The final pixel is the result of multiplying the source pixel
1499      *  by the target pixel.	 */
1500     ARKUI_BLEND_MODE_MULTIPLY,
1501     /** The resultant image is created with the luminance and saturation of the source image and the hue of the target
1502      *  image. */
1503     ARKUI_BLEND_MODE_HUE,
1504     /** The resultant image is created with the luminance and hue of the target image and the saturation of the source
1505      *  image. */
1506     ARKUI_BLEND_MODE_SATURATION,
1507     /** The resultant image is created with the saturation and hue of the source image and the luminance of the target
1508      *  image. */
1509     ARKUI_BLEND_MODE_COLOR,
1510     /** The resultant image is created with the saturation and hue of the target image and the luminance of the source
1511      *  image. */
1512     ARKUI_BLEND_MODE_LUMINOSITY,
1513 } ArkUI_BlendMode;
1514 
1515 /**
1516  * @brief Enumerates the modes in which components are laid out along the main axis of the container.
1517  *
1518  * @since 12
1519  */
1520 typedef enum {
1521     /** Components are arranged from left to right. */
1522     ARKUI_DIRECTION_LTR = 0,
1523     /** Components are arranged from right to left. */
1524     ARKUI_DIRECTION_RTL,
1525     /** The default layout direction is used. */
1526     ARKUI_DIRECTION_AUTO = 3,
1527 } ArkUI_Direction;
1528 
1529 /**
1530  * @brief Enumerates the modes in which components are laid out along the cross axis of the container.
1531  *
1532  * @since 12
1533  */
1534 typedef enum {
1535     /** The default configuration in the container is used. */
1536     ARKUI_ITEM_ALIGNMENT_AUTO = 0,
1537     /** The items in the container are aligned with the cross-start edge. */
1538     ARKUI_ITEM_ALIGNMENT_START,
1539     /** The items in the container are centered along the cross axis. */
1540     ARKUI_ITEM_ALIGNMENT_CENTER,
1541     /** The items in the container are aligned with the cross-end edge. */
1542     ARKUI_ITEM_ALIGNMENT_END,
1543     /** The items in the container are stretched and padded along the cross axis. */
1544     ARKUI_ITEM_ALIGNMENT_STRETCH,
1545     /** The items in the container are aligned in such a manner that their text baselines are aligned along the
1546      *  cross axis. */
1547     ARKUI_ITEM_ALIGNMENT_BASELINE,
1548 } ArkUI_ItemAlignment;
1549 
1550 /**
1551  * @brief Enumerates the foreground colors.
1552  *
1553  * @since 12
1554  */
1555 typedef enum {
1556     /** The foreground colors are the inverse of the component background colors. */
1557     ARKUI_COLOR_STRATEGY_INVERT = 0,
1558     /** The shadow colors of the component are the average color obtained from the component background shadow area. */
1559     ARKUI_COLOR_STRATEGY_AVERAGE,
1560     /** The shadow colors of the component are the primary color obtained from the component background shadow area. */
1561     ARKUI_COLOR_STRATEGY_PRIMARY,
1562 } ArkUI_ColorStrategy;
1563 
1564 /**
1565  * @brief Enumerates the vertical alignment modes.
1566  *
1567  * @since 12
1568  */
1569 typedef enum {
1570     /** The child components are aligned with the start edge of the main axis. */
1571     ARKUI_FLEX_ALIGNMENT_START = 1,
1572     /** The child components are aligned in the center of the main axis. */
1573     ARKUI_FLEX_ALIGNMENT_CENTER = 2,
1574     /** The child components are aligned with the end edge of the main axis. */
1575     ARKUI_FLEX_ALIGNMENT_END = 3,
1576     /** The child components are evenly distributed along the main axis. The space between any two adjacent components
1577      * is the same. The first component is aligned with the main-start, and the last component is aligned with
1578      * the main-end.
1579      */
1580     ARKUI_FLEX_ALIGNMENT_SPACE_BETWEEN = 6,
1581     /** The child components are evenly distributed along the main axis. The space between any two adjacent components
1582      * is the same. The space between the first component and main-start, and that between the last component and
1583      * cross-main are both half the size of the space between two adjacent components.
1584      */
1585     ARKUI_FLEX_ALIGNMENT_SPACE_AROUND = 7,
1586     /** The child components are evenly distributed along the main axis. The space between the first component
1587      * and main-start, the space between the last component and main-end, and the space between any two adjacent
1588      * components are the same.
1589      */
1590     ARKUI_FLEX_ALIGNMENT_SPACE_EVENLY = 8,
1591 } ArkUI_FlexAlignment;
1592 
1593 /**
1594  * @brief Enumerates the directions of the main axis in the flex container.
1595  *
1596  * @since 12
1597  */
1598 typedef enum {
1599     /** The child components are arranged in the same direction as the main axis runs along the rows. */
1600     ARKUI_FLEX_DIRECTION_ROW = 0,
1601     /** The child components are arranged in the same direction as the main axis runs down the columns. */
1602     ARKUI_FLEX_DIRECTION_COLUMN,
1603     /** The child components are arranged opposite to the <b>ROW</b> direction. */
1604     ARKUI_FLEX_DIRECTION_ROW_REVERSE,
1605     /** The child components are arranged opposite to the <b>COLUMN</b> direction. */
1606     ARKUI_FLEX_DIRECTION_COLUMN_REVERSE,
1607 } ArkUI_FlexDirection;
1608 
1609 /**
1610  * @brief Defines whether the flex container has a single line or multiple lines.
1611  *
1612  * @since 12
1613  */
1614 typedef enum {
1615     /** The child components in the flex container are arranged in a single line, and they cannot overflow. */
1616     ARKUI_FLEX_WRAP_NO_WRAP = 0,
1617     /** The child components in the flex container are arranged in multiple lines, and they may overflow. */
1618     ARKUI_FLEX_WRAP_WRAP,
1619     /** The child components in the flex container are reversely arranged in multiple lines, and they may overflow. */
1620     ARKUI_FLEX_WRAP_WRAP_REVERSE,
1621 } ArkUI_FlexWrap;
1622 
1623 /**
1624  * @brief Enumerates the visibility values.
1625  *
1626  * @since 12
1627  */
1628 typedef enum {
1629     /** The component is visible. */
1630     ARKUI_VISIBILITY_VISIBLE = 0,
1631     /** The component is hidden, and a placeholder is used for it in the layout. */
1632     ARKUI_VISIBILITY_HIDDEN,
1633     /** The component is hidden. It is not involved in the layout, and no placeholder is used for it. */
1634     ARKUI_VISIBILITY_NONE,
1635 } ArkUI_Visibility;
1636 
1637 /**
1638  * @brief Enumerates the alignment modes between the calendar picker and the entry component.
1639  *
1640  * @since 12
1641  */
1642 typedef enum {
1643     /** Left aligned. */
1644     ARKUI_CALENDAR_ALIGNMENT_START = 0,
1645     /** Center aligned. */
1646     ARKUI_CALENDAR_ALIGNMENT_CENTER,
1647     /** Right aligned. */
1648     ARKUI_CALENDAR_ALIGNMENT_END,
1649 } ArkUI_CalendarAlignment;
1650 
1651 /**
1652  * @brief Enumerates the mask types.
1653  *
1654  * @since 12
1655  */
1656 typedef enum {
1657     /** Rectangle. */
1658     ARKUI_MASK_TYPE_RECTANGLE = 0,
1659     /** Circle. */
1660     ARKUI_MASK_TYPE_CIRCLE,
1661     /** Ellipse. */
1662     ARKUI_MASK_TYPE_ELLIPSE,
1663     /** Path. */
1664     ARKUI_MASK_TYPE_PATH,
1665     /** Progress indicator. */
1666     ARKUI_MASK_TYPE_PROGRESS,
1667 } ArkUI_MaskType;
1668 
1669 /**
1670  * @brief Enumerates the clipping region types.
1671  *
1672  * @since 12
1673  */
1674 typedef enum {
1675     /** Rectangle. */
1676     ARKUI_CLIP_TYPE_RECTANGLE = 0,
1677     /** Circle. */
1678     ARKUI_CLIP_TYPE_CIRCLE,
1679     /** Ellipse. */
1680     ARKUI_CLIP_TYPE_ELLIPSE,
1681     /** Path. */
1682     ARKUI_CLIP_TYPE_PATH,
1683 } ArkUI_ClipType;
1684 
1685 /**
1686  * @brief Defines the gradient color stop structure.
1687  *
1688  * @since 12
1689  */
1690 typedef struct {
1691     /** Color array. */
1692     const uint32_t* colors;
1693     /** Position array. */
1694     float* stops;
1695     /** Length array. */
1696     int size;
1697 } ArkUI_ColorStop;
1698 
1699 /**
1700  * @brief Enumerates the custom shapes.
1701  *
1702  * @since 12
1703  */
1704 typedef enum {
1705     /** Rectangle. */
1706     ARKUI_SHAPE_TYPE_RECTANGLE = 0,
1707     /** Circle. */
1708     ARKUI_SHAPE_TYPE_CIRCLE,
1709     /** Ellipse. */
1710     ARKUI_SHAPE_TYPE_ELLIPSE,
1711     /** Path. */
1712     ARKUI_SHAPE_TYPE_PATH,
1713 } ArkUI_ShapeType;
1714 
1715 /**
1716  * @brief Enumerates the gradient directions.
1717  *
1718  * @since 12
1719  */
1720 typedef enum {
1721     /** From right to left. */
1722     ARKUI_LINEAR_GRADIENT_DIRECTION_LEFT = 0,
1723     /** From bottom to top. */
1724     ARKUI_LINEAR_GRADIENT_DIRECTION_TOP,
1725     /** From left to right. */
1726     ARKUI_LINEAR_GRADIENT_DIRECTION_RIGHT,
1727     /** From top to bottom. */
1728     ARKUI_LINEAR_GRADIENT_DIRECTION_BOTTOM,
1729     /** From lower right to upper left. */
1730     ARKUI_LINEAR_GRADIENT_DIRECTION_LEFT_TOP,
1731     /** From upper right to lower left. */
1732     ARKUI_LINEAR_GRADIENT_DIRECTION_LEFT_BOTTOM,
1733     /** From lower left to upper right. */
1734     ARKUI_LINEAR_GRADIENT_DIRECTION_RIGHT_TOP,
1735     /** From upper left to lower right. */
1736     ARKUI_LINEAR_GRADIENT_DIRECTION_RIGHT_BOTTOM,
1737     /** No gradient. */
1738     ARKUI_LINEAR_GRADIENT_DIRECTION_NONE,
1739     /** Custom direction. */
1740     ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM,
1741 } ArkUI_LinearGradientDirection;
1742 
1743 /**
1744  * @brief Enumerates the word break rules.
1745  *
1746  * @since 12
1747  */
1748 typedef enum {
1749     /** Word breaks can occur between any two characters for Chinese, Japanese, and Korean (CJK) text, but can occur
1750      *  only at a space character for non-CJK text (such as English). */
1751     ARKUI_WORD_BREAK_NORMAL = 0,
1752     /** Word breaks can occur between any two characters for non-CJK text. CJK text behavior is the same as for
1753      *  <b>NORMAL</b>. */
1754     ARKUI_WORD_BREAK_BREAK_ALL,
1755     /** This option has the same effect as <b>BREAK_ALL</b> for non-CJK text, except that if it preferentially wraps
1756      *  lines at appropriate characters (for example, spaces) whenever possible.
1757         CJK text behavior is the same as for <b>NORMAL</b>. */
1758     ARKUI_WORD_BREAK_BREAK_WORD,
1759     /** For supported languages, line breaks can be performed by syllables. */
1760     ARKUI_WORD_BREAK_HYPHENATION,
1761 } ArkUI_WordBreak;
1762 
1763 /**
1764  * @brief Enumerates the ellipsis positions.
1765  *
1766  * @since 12
1767  */
1768 typedef enum {
1769     /** An ellipsis is used at the start of the line of text. */
1770     ARKUI_ELLIPSIS_MODE_START = 0,
1771     /** An ellipsis is used at the center of the line of text. */
1772     ARKUI_ELLIPSIS_MODE_CENTER,
1773     /** An ellipsis is used at the end of the line of text. */
1774     ARKUI_ELLIPSIS_MODE_END,
1775 } ArkUI_EllipsisMode;
1776 
1777 /**
1778  * @brief Enumerates the image rendering modes.
1779  *
1780  * @since 12
1781  */
1782 typedef enum {
1783     /** Render image pixels as they are in the original source image. */
1784     ARKUI_IMAGE_RENDER_MODE_ORIGINAL = 0,
1785     /** Render image pixels to create a monochrome template image. */
1786     ARKUI_IMAGE_RENDER_MODE_TEMPLATE,
1787 } ArkUI_ImageRenderMode;
1788 
1789 /**
1790  * @brief Enumerates the slide-in and slide-out positions of the component from the screen edge during transition.
1791  *
1792  * @since 12
1793  */
1794 typedef enum {
1795     /** Top edge of the window. */
1796     ARKUI_TRANSITION_EDGE_TOP = 0,
1797     /** Bottom edge of the window. */
1798     ARKUI_TRANSITION_EDGE_BOTTOM,
1799     /** Left edge of the window. */
1800     ARKUI_TRANSITION_EDGE_START,
1801     /** Right edge of the window. */
1802     ARKUI_TRANSITION_EDGE_END,
1803 } ArkUI_TransitionEdge;
1804 
1805 /**
1806  * @brief Defines how the specified blend mode is applied.
1807  *
1808  * @since 12
1809  */
1810 typedef enum {
1811     /** The content of the view is blended in sequence on the target image. */
1812     BLEND_APPLY_TYPE_FAST = 0,
1813     /** The content of the component and its child components are drawn on the offscreen canvas, and then blended with
1814     the existing content on the canvas. */
1815     BLEND_APPLY_TYPE_OFFSCREEN,
1816 } ArkUI_BlendApplyType;
1817 
1818 /**
1819  * @brief Defines a mask area.
1820  *
1821  * @since 12
1822  */
1823 typedef struct {
1824     /** X coordinate of the mask area. */
1825     float x;
1826     /** Y coordinate of the mask area. */
1827     float y;
1828     /** Width of the mask area. */
1829     float width;
1830     /** Height of the mask area. */
1831     float height;
1832 } ArkUI_Rect;
1833 
1834 /**
1835  * @brief Describes the width and height of a component.
1836  *
1837  * @since 12
1838  */
1839 typedef struct {
1840     /** Width, in px. */
1841     int32_t width;
1842     /** Height, in px. */
1843     int32_t height;
1844 } ArkUI_IntSize;
1845 
1846 /**
1847  * @brief Describes the position of a component.
1848  *
1849  * @since 12
1850  */
1851 typedef struct {
1852     /** Horizontal coordinate, in px. */
1853     int32_t x;
1854     /** Vertical coordinate, in px. */
1855     int32_t y;
1856 } ArkUI_IntOffset;
1857 
1858 
1859 /**
1860  * @brief Describes the margins of a component.
1861  *
1862  * @since 12
1863  */
1864 typedef struct {
1865     /** Top margin, in vp. */
1866     float top;
1867     /** Right margin, in vp. */
1868     float right;
1869     /** Bottom margin, in vp. */
1870     float bottom;
1871     /** Left margin, in vp. */
1872     float left;
1873 } ArkUI_Margin;
1874 
1875 /**
1876  * @brief Enumerates the animation onFinish callback types.
1877  *
1878  * @since 12
1879  */
1880 typedef enum {
1881     /** The callback is invoked when the entire animation is removed once it has finished. */
1882     ARKUI_FINISH_CALLBACK_REMOVED = 0,
1883     /** The callback is invoked when the animation logically enters the falling state, though it may still be in its
1884       * long tail state. */
1885     ARKUI_FINISH_CALLBACK_LOGICALLY,
1886 } ArkUI_FinishCallbackType;
1887 
1888 /**
1889  * @brief defines the direction of the barrier line.
1890  *
1891  * @since 12
1892  */
1893 typedef enum {
1894     /** The barrier is the leftmost of all its referencedIds. */
1895     ARKUI_BARRIER_DIRECTION_START = 0,
1896     /** The barrier is on the rightmost side of all its referencedIds. */
1897     ARKUI_BARRIER_DIRECTION_END,
1898     /** The barrier is at the top of all its referencedIds. */
1899     ARKUI_BARRIER_DIRECTION_TOP,
1900     /** The barrier is at the bottom of all its referencedIds. */
1901     ARKUI_BARRIER_DIRECTION_BOTTOM
1902 } ArkUI_BarrierDirection;
1903 
1904 
1905 /**
1906   * @brief defines the style of the chain.
1907   *
1908   * @since 12
1909   */
1910 typedef enum {
1911     /** Components are evenly distributed among constraint anchor points. */
1912     ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_SPREAD = 0,
1913     /** Except for the first and last two sub-components,
1914       * other components are evenly distributed between the constraint anchor points. */
1915     ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_SPREAD_INSIDE,
1916     /** No gaps in subcomponents within the chain. */
1917     ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_PACKED,
1918 } ArkUI_RelativeLayoutChainStyle;
1919 
1920 
1921 /**
1922  * @brief Enumerates the alignment modes of items along the cross axis.
1923   *
1924  * @since 12
1925  */
1926 typedef enum {
1927     /** The list items are packed toward the start edge of the list container along the cross axis. */
1928     ARKUI_LIST_ITEM_ALIGNMENT_START = 0,
1929     /** The list items are centered in the list container along the cross axis. */
1930     ARKUI_LIST_ITEM_ALIGNMENT_CENTER,
1931     /** The list items are packed toward the end edge of the list container along the cross axis. */
1932     ARKUI_LIST_ITEM_ALIGNMENT_END,
1933 } ArkUI_ListItemAlignment;
1934 
1935 /**
1936  * @brief Enumerates the component units.
1937  *
1938  * @since 12
1939  */
1940 typedef enum {
1941     /** Default, which is fp for fonts and vp for non-fonts. */
1942     ARKUI_LENGTH_METRIC_UNIT_DEFAULT = -1,
1943     /** px. */
1944     ARKUI_LENGTH_METRIC_UNIT_PX = 0,
1945     /** vp. */
1946     ARKUI_LENGTH_METRIC_UNIT_VP,
1947     /** fp. */
1948     ARKUI_LENGTH_METRIC_UNIT_FP
1949 } ArkUI_LengthMetricUnit;
1950 
1951 typedef enum {
1952     ARKUI_RENDER_FIT_CENTER = 0,
1953     ARKUI_RENDER_FIT_TOP,
1954     ARKUI_RENDER_FIT_BOTTOM,
1955     ARKUI_RENDER_FIT_LEFT,
1956     ARKUI_RENDER_FIT_RIGHT,
1957     ARKUI_RENDER_FIT_TOP_LEFT,
1958     ARKUI_RENDER_FIT_TOP_RIGHT,
1959     ARKUI_RENDER_FIT_BOTTOM_LEFT,
1960     ARKUI_RENDER_FIT_BOTTOM_RIGHT,
1961     ARKUI_RENDER_FIT_RESIZE_FILL,
1962     ARKUI_RENDER_FIT_RESIZE_CONTAIN,
1963     ARKUI_RENDER_FIT_RESIZE_CONTAIN_TOP_LEFT,
1964     ARKUI_RENDER_FIT_RESIZE_CONTAIN_BOTTOM_RIGHT,
1965     ARKUI_RENDER_FIT_RESIZE_COVER,
1966     ARKUI_RENDER_FIT_RESIZE_COVER_TOP_LEFT,
1967     ARKUI_RENDER_FIT_RESIZE_COVER_BOTTOM_RIGHT
1968 } ArkUI_RenderFit;
1969 
1970 /**
1971  * @brief Enumerates the autofill types.
1972  *
1973  * @since 12
1974  */
1975 typedef enum {
1976     /** Username. Password Vault, when enabled, can automatically save and fill in usernames. */
1977     ARKUI_TEXTINPUT_CONTENT_TYPE_USER_NAME = 0,
1978     /** Password. Password Vault, when enabled, can automatically save and fill in passwords. */
1979     ARKUI_TEXTINPUT_CONTENT_TYPE_PASSWORD,
1980     /** New password. Password Vault, when enabled, can automatically generate a new password. */
1981     ARKUI_TEXTINPUT_CONTENT_TYPE_NEW_PASSWORD,
1982     /** Full street address. The scenario-based autofill feature, when enabled, can automatically save and fill in full
1983      *  street addresses. */
1984     ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_STREET_ADDRESS,
1985     /** House number. The scenario-based autofill feature, when enabled, can automatically save and fill in house
1986      *  numbers. */
1987     ARKUI_TEXTINPUT_CONTENT_TYPE_HOUSE_NUMBER,
1988     /** District and county. The scenario-based autofill feature, when enabled, can automatically save and fill in
1989      *  districts and counties. */
1990     ARKUI_TEXTINPUT_CONTENT_TYPE_DISTRICT_ADDRESS,
1991     /** City. The scenario-based autofill feature, when enabled, can automatically save and fill in cities. */
1992     ARKUI_TEXTINPUT_CONTENT_TYPE_CITY_ADDRESS,
1993     /** Province. The scenario-based autofill feature, when enabled, can automatically save and fill in provinces. */
1994     ARKUI_TEXTINPUT_CONTENT_TYPE_PROVINCE_ADDRESS,
1995     /** Country. The scenario-based autofill feature, when enabled, can automatically save and fill in countries. */
1996     ARKUI_TEXTINPUT_CONTENT_TYPE_COUNTRY_ADDRESS,
1997     /** Full name. The scenario-based autofill feature, when enabled, can automatically save and fill in full names. */
1998     ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_FULL_NAME,
1999     /** Last name. The scenario-based autofill feature, when enabled, can automatically save and fill in last names. */
2000     ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_LAST_NAME,
2001     /** First name. The scenario-based autofill feature, when enabled, can automatically save and fill in first names.
2002      */
2003     ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_FIRST_NAME,
2004     /** Phone number. The scenario-based autofill feature, when enabled, can automatically save and fill in phone
2005      *  numbers. */
2006     ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_NUMBER,
2007     /** Country code. The scenario-based autofill feature, when enabled, can automatically save and fill in country
2008      *  codes. */
2009     ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_COUNTRY_CODE,
2010     /** Phone number with country code. The scenario-based autofill feature, when enabled, can automatically save and
2011      *  fill in phone numbers with country codes. */
2012     ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_PHONE_NUMBER,
2013     /** Email address. The scenario-based autofill feature, when enabled, can automatically save and fill in email
2014      *  addresses. */
2015     ARKUI_TEXTINPUT_CONTENT_EMAIL_ADDRESS,
2016     /** Bank card number. The scenario-based autofill feature, when enabled, can automatically save and fill in bank
2017      *  card numbers. */
2018     ARKUI_TEXTINPUT_CONTENT_TYPE_BANK_CARD_NUMBER,
2019     /** ID card number. The scenario-based autofill feature, when enabled, can automatically save and fill in ID card
2020      *  numbers. */
2021     ARKUI_TEXTINPUT_CONTENT_TYPE_ID_CARD_NUMBER,
2022     /** Nickname. The scenario-based autofill feature, when enabled, can automatically save and fill in nicknames. */
2023     ARKUI_TEXTINPUT_CONTENT_TYPE_NICKNAME,
2024     /** Address information without street address. The scenario-based autofill feature, when enabled, can automatically
2025      *  save and fill in address information without street addresses. */
2026     ARKUI_TEXTINPUT_CONTENT_TYPE_DETAIL_INFO_WITHOUT_STREET,
2027     /** Standard address. The scenario-based autofill feature, when enabled, can automatically save and fill in standard
2028      *  addresses. */
2029     ARKUI_TEXTINPUT_CONTENT_TYPE_FORMAT_ADDRESS,
2030     /**
2031      * Passport number. The scenario-based autofill feature, when enabled, can automatically save and fill in passport
2032      * numbers.
2033      * @since 16
2034      */
2035     ARKUI_TEXTINPUT_CONTENT_TYPE_PASSPORT_NUMBER,
2036     /**
2037      *  Passport validity. The scenario-based autofill feature, when enabled, can automatically save and fill in
2038      *  passport validities.
2039      *  @since 16
2040      */
2041     ARKUI_TEXTINPUT_CONTENT_TYPE_VALIDITY,
2042     /**
2043      *  Place of issue. The scenario-based autofill feature, when enabled, can automatically save and fill in
2044      *  place of issues.
2045      *  @since 16
2046      */
2047     ARKUI_TEXTINPUT_CONTENT_TYPE_ISSUE_AT,
2048     /**
2049      *  Tax organization. The scenario-based autofill feature, when enabled, can automatically save and fill in tax
2050      *  organizations.
2051      *  @since 16
2052      */
2053     ARKUI_TEXTINPUT_CONTENT_TYPE_ORGANIZATION,
2054     /**
2055      *  Tax id. The scenario-based autofill feature, when enabled, can automatically save and fill in standard Tax ids.
2056      *  @since 16
2057      */
2058     ARKUI_TEXTINPUT_CONTENT_TYPE_TAX_ID,
2059     /**
2060      *  City name and state name or state code. The scenario-based autofill feature, when enabled, can automatically
2061      *  save and fill in city names and state names or state codes.
2062      *  @since 16
2063      */
2064     ARKUI_TEXTINPUT_CONTENT_TYPE_ADDRESS_CITY_AND_STATE,
2065     /**
2066      *  Flight number. The scenario-based autofill feature, when enabled, can automatically save and fill in flight
2067      *  numbers.
2068      *  @since 16
2069      */
2070     ARKUI_TEXTINPUT_CONTENT_TYPE_FLIGHT_NUMBER,
2071     /**
2072      *  License number. The scenario-based autofill feature, when enabled, can automatically save and fill in license
2073      *  numbers.
2074      *  @since 16
2075      */
2076     ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_NUMBER,
2077     /**
2078      *  License file number. The scenario-based autofill feature, when enabled, can automatically save and fill in
2079      *  license file numbers.
2080      *  @since 16
2081      */
2082     ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_FILE_NUMBER,
2083     /**
2084      *  License plate number. The scenario-based autofill feature, when enabled, can automatically save and fill in
2085      *  license plate numbers.
2086      *  @since 16
2087      */
2088     ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_PLATE,
2089     /**
2090      *  Engine number. The scenario-based autofill feature, when enabled, can automatically save and fill in engine
2091      *  numbers.
2092      *  @since 16
2093      */
2094     ARKUI_TEXTINPUT_CONTENT_TYPE_ENGINE_NUMBER,
2095     /**
2096      *  License chassis number. The scenario-based autofill feature, when enabled, can automatically save and fill in
2097      *  license chassis numbers.
2098      *  @since 16
2099      */
2100     ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_CHASSIS_NUMBER,
2101 }ArkUI_TextInputContentType;
2102 
2103 /**
2104  * @brief Defines the text input style.
2105  *
2106  * @since 12
2107  */
2108 typedef enum {
2109     /** Default style. The caret width is fixed at 1.5 vp, and the caret height is subject to the background height and
2110      *  font size of the selected text. */
2111     ARKUI_TEXTINPUT_STYLE_DEFAULT = 0,
2112     /** Inline input style. The background height of the selected text is the same as the height of the text box. */
2113     ARKUI_TEXTINPUT_STYLE_INLINE
2114 } ArkUI_TextInputStyle;
2115 
2116 /**
2117  * @brief Defines the keyboard style of input box
2118  *
2119  * @since 15
2120  */
2121 typedef enum {
2122     /**
2123      * Default appearance mode, won't adopt immersive styles.
2124      * @since 15
2125      */
2126     ARKUI_KEYBOARD_APPEARANCE_NONE_IMMERSIVE = 0,
2127     /**
2128      * Immersive mode.
2129      * @since 15
2130      */
2131     ARKUI_KEYBOARD_APPEARANCE_IMMERSIVE = 1,
2132     /**
2133      * Light immersive style.
2134      * @since 15
2135      */
2136     ARKUI_KEYBOARD_APPEARANCE_LIGHT_IMMERSIVE = 2,
2137     /**
2138      * Dark immersive style.
2139      * @since 15
2140      */
2141     ARKUI_KEYBOARD_APPEARANCE_DARK_IMMERSIVE = 3,
2142 } ArkUI_KeyboardAppearance;
2143 
2144 /**
2145  * @brief Defines the state of the NavDestination component.
2146  *
2147  * @since 12
2148  */
2149 typedef enum {
2150     /** The NavDestination show. */
2151     ARKUI_NAV_DESTINATION_STATE_ON_SHOW = 0,
2152     /** The NavDestination hide. */
2153     ARKUI_NAV_DESTINATION_STATE_ON_HIDE = 1,
2154     /** The NavDestination is mounted to the component tree. */
2155     ARKUI_NAV_DESTINATION_STATE_ON_APPEAR = 2,
2156     /** The NavDestination removed from the component tree. */
2157     ARKUI_NAV_DESTINATION_STATE_ON_DISAPPEAR = 3,
2158     /** Before the NavDestination show. */
2159     ARKUI_NAV_DESTINATION_STATE_ON_WILL_SHOW = 4,
2160     /** Before the NavDestination hide. */
2161     ARKUI_NAV_DESTINATION_STATE_ON_WILL_HIDE = 5,
2162     /** Before the NavDestination mount to the component tree. */
2163     ARKUI_NAV_DESTINATION_STATE_ON_WILL_APPEAR = 6,
2164     /** Before the NavDestination removed from the component tree. */
2165     ARKUI_NAV_DESTINATION_STATE_ON_WILL_DISAPPEAR = 7,
2166     /** The NavDestination returns from the component.*/
2167     ARKUI_NAV_DESTINATION_STATE_ON_BACK_PRESS = 100,
2168 } ArkUI_NavDestinationState;
2169 
2170 /**
2171  * @brief Define the state of Router Page.
2172  *
2173  * @since 12
2174  */
2175 typedef enum {
2176     /** The Router Page is about to be created. */
2177     ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_APPEAR = 0,
2178     /** The Router Page is about to be destroyed. */
2179     ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_DISAPPEAR = 1,
2180     /** The Router Page show. */
2181     ARKUI_ROUTER_PAGE_STATE_ON_SHOW = 2,
2182     /** The Router Page hide. */
2183     ARKUI_ROUTER_PAGE_STATE_ON_HIDE = 3,
2184     /** The Router Page returns. */
2185     ARKUI_ROUTER_PAGE_STATE_ON_BACK_PRESS = 4,
2186 } ArkUI_RouterPageState;
2187 
2188 /**
2189  * @brief 定义文本识别的实体类型。
2190  *
2191  * @since 12
2192  */
2193 typedef enum {
2194     /** 电话号码。*/
2195     ARKUI_TEXT_DATA_DETECTOR_TYPE_PHONE_NUMBER = 0,
2196     /** 链接。 */
2197     ARKUI_TEXT_DATA_DETECTOR_TYPE_URL,
2198     /** 邮箱。 */
2199     ARKUI_TEXT_DATA_DETECTOR_TYPE_EMAIL,
2200     /** 地址。 */
2201     ARKUI_TEXT_DATA_DETECTOR_TYPE_ADDRESS,
2202 } ArkUI_TextDataDetectorType;
2203 
2204 /**
2205  * @brief Enumerates the button types.
2206  *
2207  * @since 12
2208  */
2209 typedef enum {
2210     /** Normal button (without rounded corners by default). */
2211     ARKUI_BUTTON_TYPE_NORMAL = 0,
2212     /** Capsule-type button (the round corner is half of the height by default). */
2213     ARKUI_BUTTON_TYPE_CAPSULE,
2214     /** Circle button. */
2215     ARKUI_BUTTON_TYPE_CIRCLE,
2216     /**
2217      * Rounded rectangle button.
2218      * @since 19
2219      */
2220     ARKUI_BUTTON_ROUNDED_RECTANGLE = 8
2221 } ArkUI_ButtonType;
2222 
2223 /**
2224  * @brief Define the navigation indicator type of the swiper.
2225  *
2226  * @since 12
2227  */
2228 typedef enum {
2229     /** dot type. */
2230     ARKUI_SWIPER_INDICATOR_TYPE_DOT,
2231     /** digit type. */
2232     ARKUI_SWIPER_INDICATOR_TYPE_DIGIT,
2233 } ArkUI_SwiperIndicatorType;
2234 
2235 
2236 typedef enum {
2237     ARKUI_ANIMATION_DIRECTION_NORMAL = 0,
2238     ARKUI_ANIMATION_DIRECTION_REVERSE,
2239     ARKUI_ANIMATION_DIRECTION_ALTERNATE,
2240     ARKUI_ANIMATION_DIRECTION_ALTERNATE_REVERSE,
2241 } ArkUI_AnimationDirection;
2242 
2243 typedef enum {
2244     /** In the folded state, when the ListItem slides in the opposite direction to the main axis,
2245      * the operation item is hidden.*/
2246     ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_COLLAPSED = 0,
2247     /** In the folded state, when the ListItem slides in the opposite direction to the spindle,
2248      * the operation item is displayed.*/
2249     ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_EXPANDED,
2250     /** Long distance state, the state of deleting a ListItem after it enters the long distance deletion area.*/
2251     ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_ACTIONING,
2252 } ArkUI_ListItemSwipeActionState;
2253 
2254 typedef enum {
2255     /** The ListItem can continue to be scratched after the distance exceeds the size of the scratched component.*/
2256     ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_SPRING = 0,
2257     /** The sliding distance of the ListItem cannot exceed the size of the scratched component.*/
2258     ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_NONE,
2259 } ArkUI_ListItemSwipeEdgeEffect;
2260 
2261 /**
2262  * @brief 定义帧动画的播放状态。
2263  *
2264  * @since 12
2265 */
2266 typedef enum {
2267     /** 动画初始状态。 */
2268     ARKUI_ANIMATION_STATUS_INITIAL,
2269     /** 动画处于播放状态。*/
2270     ARKUI_ANIMATION_STATUS_RUNNING,
2271     /** 动画处于暂停状态。*/
2272     ARKUI_ANIMATION_STATUS_PAUSED,
2273     /** 动画处于停止状态。*/
2274     ARKUI_ANIMATION_STATUS_STOPPED,
2275 } ArkUI_AnimationStatus;
2276 
2277 /**
2278  * @brief Enumerates the states before and after execution of the frame-by-frame animation.
2279  *
2280  * @since 12
2281 */
2282 typedef enum {
2283     /** Before execution, the animation does not apply any styles to the target component. After execution, the
2284      *  animation restores the target component to its default state. */
2285     ARKUI_ANIMATION_FILL_MODE_NONE,
2286     /** The target component retains the state set by the last keyframe encountered during execution of the
2287      *  animation. */
2288     ARKUI_ANIMATION_FILL_MODE_FORWARDS,
2289     /** The animation applies the values defined in the first relevant keyframe once it is applied to the target
2290      *  component, and retains the values during the period set by <b>delay</b>. */
2291     ARKUI_ANIMATION_FILL_MODE_BACKWARDS,
2292     /** The animation follows the rules for both <b><b>Forwards</b></b> and <b><b>Backwards</b></b>, extending the
2293      *  animation attributes in both directions. */
2294     ARKUI_ANIMATION_FILL_MODE_BOTH,
2295 } ArkUI_AnimationFillMode;
2296 
2297 /**
2298  * @brief Enumerates the error codes.
2299  *
2300  * @since 12
2301 */
2302 typedef enum {
2303     /** No error. */
2304     ARKUI_ERROR_CODE_NO_ERROR = 0,
2305     /** Invalid parameters. */
2306     ARKUI_ERROR_CODE_PARAM_INVALID = 401,
2307     /** CAPI init error. */
2308     ARKUI_ERROR_CODE_CAPI_INIT_ERROR = 500,
2309     /**
2310      * @error Internal error occurs, such as failure occurs because of the internal environment error,
2311      * or operation failed because of the internal execution failed.
2312      * @since 15
2313      */
2314     ARKUI_ERROR_CODE_INTERNAL_ERROR = 100001,
2315     /** The component does not support specific attributes or events. */
2316     ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED = 106102,
2317     /** The specific operation is not allowed on the node created by ArkTS. */
2318     ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE = 106103,
2319     /** The adapter for lazy loading is not bound to the component. */
2320     ARKUI_ERROR_CODE_NODE_ADAPTER_NONE_HOST = 106104,
2321     /** The adapter already exists. */
2322     ARKUI_ERROR_CODE_NODE_ADAPTER_EXIST_IN_HOST = 106105,
2323     /** Failed to add the adapter because the corresponding node already has a subnode. */
2324     ARKUI_ERROR_CODE_NODE_ADAPTER_CHILD_NODE_EXIST = 106106,
2325     /** The index value is invalid. */
2326     ARKUI_ERROR_CODE_NODE_INDEX_INVALID = 106200,
2327     /**  Failed to query route navigation information. */
2328     ARKUI_ERROR_CODE_GET_INFO_FAILED = 106201,
2329     /** The buffer size is not large enough. */
2330     ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR = 106202,
2331     /**
2332      * @error The snapshot taking is timeout.
2333      * @since 15
2334      */
2335     ARKUI_ERROR_CODE_COMPONENT_SNAPSHOT_TIMEOUT = 160002,
2336     /** The node is not on main tree. */
2337     ARKUI_ERROR_CODE_NODE_NOT_ON_MAIN_TREE = 106203,
2338     /**
2339      * @error The node is running on invalid thread.
2340      * @since 20
2341      */
2342     ARKUI_ERROR_CODE_NODE_ON_INVALID_THREAD = 106204,
2343     /**
2344      * @error Force dark config is invalid.
2345      * @since 20
2346      */
2347     ARKUI_ERROR_CODE_FORCE_DARK_CONFIG_INVALID = 106205,
2348     /**
2349      * @error The node type is not custom node.
2350      * @since 20
2351      */
2352     ARKUI_ERROR_CODE_NOT_CUSTOM_NODE = 106401,
2353     /**
2354      * @error Node already has children.
2355      * @since 20
2356      */
2357     ARKUI_ERROR_CODE_CHILD_EXISTED = 106402,
2358     /**
2359      * @error RenderNode parent is existed.
2360      * @since 20
2361      */
2362     ARKUI_ERROR_CODE_RENDER_PARENT_EXISTED = 106403,
2363     /**
2364      * @error RenderNode child is not exist.
2365      * @since 20
2366      */
2367     ARKUI_ERROR_CODE_RENDER_CHILD_NOT_EXIST = 106404,
2368     /**
2369      * @error Param is out of range.
2370      * @since 20
2371      */
2372     ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE = 106405,
2373     /**
2374      * @error The node requesting focus is not focusable.
2375      * @since 15
2376      */
2377     ARKUI_ERROR_CODE_FOCUS_NON_FOCUSABLE = 150001,
2378     /**
2379      * @error The node requesting focus has unfocusable ancestor.
2380      * @since 15
2381      */
2382     ARKUI_ERROR_CODE_FOCUS_NON_FOCUSABLE_ANCESTOR = 150002,
2383     /**
2384      * @error The node requesting focus does not exists.
2385      * @since 15
2386      */
2387     ARKUI_ERROR_CODE_FOCUS_NON_EXISTENT = 150003,
2388     /** The component is not a scroll container. */
2389     ARKUI_ERROR_CODE_NON_SCROLLABLE_CONTAINER = 180001,
2390     /** The buffer is not large enough. */
2391     ARKUI_ERROR_CODE_BUFFER_SIZE_NOT_ENOUGH = 180002,
2392     /**
2393      * @error The event is not a clone event.
2394      * @since 15
2395      */
2396     ARKUI_ERROR_CODE_NOT_CLONED_POINTER_EVENT = 180003,
2397     /**
2398      * @error The component status is abnormal.
2399      * @since 15
2400      */
2401     ARKUI_ERROR_CODE_POST_CLONED_COMPONENT_STATUS_ABNORMAL = 180004,
2402     /**
2403      * @error No component hit to respond to the event.
2404      * @since 15
2405      */
2406     ARKUI_ERROR_CODE_POST_CLONED_NO_COMPONENT_HIT_TO_RESPOND_TO_THE_EVENT = 180005,
2407     /**
2408      * @error input event type is not supported.
2409      * @since 20
2410      */
2411     ARKUI_ERROR_INPUT_EVENT_TYPE_NOT_SUPPORT = 180006,
2412     /** invalid styled string */
2413     ARKUI_ERROR_CODE_INVALID_STYLED_STRING = 180101,
2414     /**
2415      * @error The gesture recognizer type is not supported.
2416      * @since 18
2417      */
2418     ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED = 180102,
2419     /** The uiContext is invalid. */
2420     ARKUI_ERROR_CODE_UI_CONTEXT_INVALID = 190001,
2421     /** The callback function is invalid. */
2422     ARKUI_ERROR_CODE_CALLBACK_INVALID = 190002,
2423     /**
2424      * @error operation is not allowed for current drag drop phase.
2425      * @since 19
2426      */
2427     ARKUI_ERROR_CODE_DRAG_DROP_OPERATION_NOT_ALLOWED = 190004,
2428     /**
2429      * @error The XComponent is in invalid state.
2430      * @since 16
2431      */
2432     ARKUI_ERROR_CODE_XCOMPONENT_STATE_INVALID = 103501,
2433 } ArkUI_ErrorCode;
2434 
2435 /**
2436  * @brief defines the enumerated value of the extended security zone.
2437  *
2438  * @since 12
2439 */
2440 typedef enum {
2441     /** The default security zone includes the status bar and navigation bar. */
2442     ARKUI_SAFE_AREA_TYPE_SYSTEM = 1,
2443     /** Non-secure areas of the device, such as bangs or hole holes. */
2444     ARKUI_SAFE_AREA_TYPE_CUTOUT = 1 << 1,
2445     /** Soft keyboard area. */
2446     ARKUI_SAFE_AREA_TYPE_KEYBOARD = 1 << 2,
2447 } ArkUI_SafeAreaType;
2448 
2449 /**
2450  * @brief Define an enum for the areas of the <b>ListItemGroup</b> component.
2451  *
2452  * @since 15
2453  */
2454 typedef enum {
2455     /** Outside the area of the <b>ListItemGroup</b> component. */
2456     ARKUI_LIST_ITEM_GROUP_AREA_OUTSIDE = 0,
2457     /** Area when the <b>ListItemGroup</b> component does not have the header, footer, or list item. */
2458     ARKUI_LIST_ITEM_SWIPE_AREA_NONE,
2459     /** List item area of the <b>ListItemGroup</b> component. */
2460     ARKUI_LIST_ITEM_SWIPE_AREA_ITEM,
2461     /** Header area of the <b>ListItemGroup</b> component. */
2462     ARKUI_LIST_ITEM_SWIPE_AREA_HEADER,
2463     /** Footer area of the <b>ListItemGroup</b> component. */
2464     ARKUI_LIST_ITEM_SWIPE_AREA_FOOTER,
2465 } ArkUI_ListItemGroupArea;
2466 
2467 /**
2468  * @brief Enumerates the keyboard avoidance modes.
2469  *
2470  * @since 15
2471  */
2472 typedef enum {
2473     /** Automatically avoids the soft keyboard and compresses the height when reaching the maximum limit. */
2474     ARKUI_KEYBOARD_AVOID_MODE_DEFAULT = 0,
2475     /** Does not avoid the keyboard. */
2476     ARKUI_KEYBOARD_AVOID_MODE_NONE,
2477 }ArkUI_KeyboardAvoidMode;
2478 
2479 /**
2480  * @brief Enumerates the types of display areas for the hover mode.
2481  *
2482  * @since 15
2483  */
2484 typedef enum {
2485     /** Upper half screen. */
2486     ARKUI_HOVER_MODE_AREA_TYPE_TOP = 0,
2487     /** Lower half screen. */
2488     ARKUI_HOVER_MODE_AREA_TYPE_BOTTOM,
2489 }ArkUI_HoverModeAreaType;
2490 
2491 /**
2492  * @brief defines the enumerated value of the direction of the extended security zone.
2493  *
2494  * @since 12
2495  */
2496 typedef enum {
2497     /** Upper area. */
2498     ARKUI_SAFE_AREA_EDGE_TOP = 1,
2499     /** Lower area. */
2500     ARKUI_SAFE_AREA_EDGE_BOTTOM = 1 << 1,
2501     /** Front area. */
2502     ARKUI_SAFE_AREA_EDGE_START = 1 << 2,
2503     /** Tail area. */
2504     ARKUI_SAFE_AREA_EDGE_END = 1 << 3,
2505 } ArkUI_SafeAreaEdge;
2506 
2507 /**
2508  * @brief Enumerates the expand modes.
2509  *
2510  * @since 15
2511  */
2512 typedef enum {
2513     /** Not expand. */
2514     ARKUI_NOT_EXPAND = 0,
2515     /** Expand. */
2516     ARKUI_EXPAND = 1,
2517     /** Lazy expand. Expand the children of node if needed. */
2518     ARKUI_LAZY_EXPAND = 2,
2519 } ArkUI_ExpandMode;
2520 
2521 /**
2522  * @brief Defines the navigation point indicator style of the <b><Swiper></b> component.
2523  * @brief Enumerates the UI states of a component, used for handling state-specific styles.
2524  *
2525  * @since 20
2526  */
2527 typedef enum {
2528     /** Normal state. */
2529     UI_STATE_NORMAL = 0,
2530     /** Pressed state. */
2531     UI_STATE_PRESSED = 1 << 0,
2532     /** Focused state. */
2533     UI_STATE_FOCUSED = 1 << 1,
2534     /** Disabled state. */
2535     UI_STATE_DISABLED = 1 << 2,
2536     /**
2537      * Selected state. This state is supported only by specific component types:
2538      * <b>Checkbox</b>, <b>Radio</b>, <b>Toggle</b>, <b>List</b>, <b>Grid</b>, and <b>MenuItem</b>.
2539      */
2540     UI_STATE_SELECTED = 1 << 3,
2541 } ArkUI_UIState;
2542 
2543 /**
2544  * @brief Define an enum for the focus movement directions.
2545  *
2546  * @since 18
2547 */
2548 typedef enum {
2549     /** Move focus forward. */
2550     ARKUI_FOCUS_MOVE_FORWARD = 0,
2551     /** Move focus backward. */
2552     ARKUI_FOCUS_MOVE_BACKWARD,
2553     /** Move focus up. */
2554     ARKUI_FOCUS_MOVE_UP,
2555     /** Move focus down. */
2556     ARKUI_FOCUS_MOVE_DOWN,
2557     /** Move focus left. */
2558     ARKUI_FOCUS_MOVE_LEFT,
2559     /** Move focus right. */
2560     ARKUI_FOCUS_MOVE_RIGHT,
2561 } ArkUI_FocusMove;
2562 
2563 /**
2564  * @brief Enumerates the edge derection.
2565  *
2566  * @since 20
2567  */
2568 typedef enum {
2569     /** Set all edge derection. */
2570     ARKUI_EDGE_DIRECTION_ALL = 0,
2571     /** Set left edge derection. */
2572     ARKUI_EDGE_DIRECTION_LEFT,
2573     /** Set right edge derection. */
2574     ARKUI_EDGE_DIRECTION_RIGHT,
2575     /** Set top edge derection. */
2576     ARKUI_EDGE_DIRECTION_TOP,
2577     /** Set bottom edge derection. */
2578     ARKUI_EDGE_DIRECTION_BOTTOM,
2579 } ArkUI_EdgeDirection;
2580 
2581 /**
2582  * @brief Enumerates the corner derection.
2583  *
2584  * @since 20
2585  */
2586 typedef enum {
2587     /** Set all corner derection. */
2588     ARKUI_CORNER_DIRECTION_ALL = 0,
2589     /** Set top left corner derection. */
2590     ARKUI_CORNER_DIRECTION_TOP_LEFT,
2591     /** Set top right corner derection. */
2592     ARKUI_CORNER_DIRECTION_TOP_RIGHT,
2593     /** Set bottom left corner derection. */
2594     ARKUI_CORNER_DIRECTION_BOTTOM_LEFT,
2595     /** Set bottom right corner derection. */
2596     ARKUI_CORNER_DIRECTION_BOTTOM_RIGHT,
2597 } ArkUI_CornerDirection;
2598 
2599 /**
2600  * @brief Defines parameter used by the system font style callback event.
2601  *
2602  * @since 12
2603  */
2604 typedef struct ArkUI_SystemFontStyleEvent ArkUI_SystemFontStyleEvent;
2605 
2606 /**
2607  * @brief Defines the options for taking snapshot.
2608  *
2609  * @since 15
2610  */
2611 typedef struct ArkUI_SnapshotOptions ArkUI_SnapshotOptions;
2612 
2613 /**
2614   * @brief TextPicker single column selector, supports mixing text and images.
2615   *
2616   * @since 19
2617   */
2618 typedef struct ArkUI_TextPickerRangeContentArray ArkUI_TextPickerRangeContentArray;
2619 
2620  /**
2621    * @brief TextPicker multi column selector, supports mixing text and images.
2622    *
2623    * @since 19
2624    */
2625 typedef struct ArkUI_TextCascadePickerRangeContentArray ArkUI_TextCascadePickerRangeContentArray;
2626 
2627 typedef struct {
2628     float x;
2629     float y;
2630     float z;
2631 } ArkUI_TranslationOptions;
2632 
2633 typedef struct {
2634     float x;
2635     float y;
2636     float z;
2637     float centerX;
2638     float centerY;
2639 } ArkUI_ScaleOptions;
2640 
2641 typedef struct {
2642     float x;
2643     float y;
2644     float z;
2645     float angle;
2646     float centerX;
2647     float centerY;
2648     float centerZ;
2649     float perspective;
2650 } ArkUI_RotationOptions;
2651 
2652 /**
2653  * @brief defines the measure info of the custom span.
2654  *
2655  * @since 12
2656  */
2657 typedef struct ArkUI_CustomSpanMeasureInfo ArkUI_CustomSpanMeasureInfo;
2658 
2659 /**
2660  * @brief defines the metrics of the custom span.
2661  *
2662  * @since 12
2663  */
2664 typedef struct ArkUI_CustomSpanMetrics ArkUI_CustomSpanMetrics;
2665 
2666 /**
2667  * @brief defines the draw info of the custom span.
2668  *
2669  * @since 12
2670  */
2671 typedef struct ArkUI_CustomSpanDrawInfo ArkUI_CustomSpanDrawInfo;
2672 
2673 /**
2674 * @brief Creates a size constraint.
2675 *
2676 * @since 12
2677 */
2678 ArkUI_LayoutConstraint* OH_ArkUI_LayoutConstraint_Create(void);
2679 
2680 /**
2681 * @brief Creates a deep copy of a size constraint.
2682 *
2683 * @param Constraint Indicates the pointer to the size constraint.
2684 * @return Returns the pointer to the new size constraint.
2685 * @since 12
2686 */
2687 ArkUI_LayoutConstraint* OH_ArkUI_LayoutConstraint_Copy(const ArkUI_LayoutConstraint* Constraint);
2688 
2689 /**
2690 * @brief Destroys the pointer to a size constraint.
2691 *
2692 * @param Constraint Indicates the pointer to the size constraint.
2693 * @since 12
2694 */
2695 void* OH_ArkUI_LayoutConstraint_Dispose(ArkUI_LayoutConstraint* Constraint);
2696 
2697 /**
2698 * @brief Obtains the maximum width for a size constraint, in px.
2699 *
2700 * @param Constraint Indicates the pointer to the size constraint.
2701 * @return Returns the maximum width.
2702 * @since 12
2703 */
2704 int32_t OH_ArkUI_LayoutConstraint_GetMaxWidth(const ArkUI_LayoutConstraint* Constraint);
2705 
2706 /**
2707 * @brief Obtains the minimum width for a size constraint, in px.
2708 *
2709 * @param Constraint Indicates the pointer to the size constraint.
2710 * @return Returns the minimum width.
2711 * @since 12
2712 */
2713 int32_t OH_ArkUI_LayoutConstraint_GetMinWidth(const ArkUI_LayoutConstraint* Constraint);
2714 
2715 /**
2716 * @brief Obtains the maximum height for a size constraint, in px.
2717 *
2718 * @param Constraint Indicates the pointer to the size constraint.
2719 * @return Returns the maximum height.
2720 * @since 12
2721 */
2722 int32_t OH_ArkUI_LayoutConstraint_GetMaxHeight(const ArkUI_LayoutConstraint* Constraint);
2723 
2724 /**
2725 * @brief Obtains the minimum height for a size constraint, in px.
2726 *
2727 * @param Constraint Indicates the pointer to the size constraint.
2728 * @return Returns the minimum height.
2729 * @since 12
2730 */
2731 int32_t OH_ArkUI_LayoutConstraint_GetMinHeight(const ArkUI_LayoutConstraint* Constraint);
2732 
2733 /**
2734 * @brief Obtains the width percentage reference for a size constraint, in px.
2735 *
2736 * @param Constraint Indicates the pointer to the size constraint.
2737 * @return Returns the width percentage reference.
2738 * @since 12
2739 */
2740 int32_t OH_ArkUI_LayoutConstraint_GetPercentReferenceWidth(const ArkUI_LayoutConstraint* Constraint);
2741 
2742 /**
2743 * @brief Obtains the height percentage reference for a size constraint, in px.
2744 *
2745 * @param Constraint Indicates the pointer to the size constraint.
2746 * @return Returns the height percentage reference.
2747 * @since 12
2748 */
2749 int32_t OH_ArkUI_LayoutConstraint_GetPercentReferenceHeight(const ArkUI_LayoutConstraint* Constraint);
2750 
2751 /**
2752 * @brief Sets the maximum width.
2753 *
2754 * @param Constraint Indicates the pointer to the size constraint.
2755 * @param value Indicates the maximum width, in px.
2756 * @since 12
2757 */
2758 void OH_ArkUI_LayoutConstraint_SetMaxWidth(ArkUI_LayoutConstraint* Constraint, int32_t value);
2759 
2760 /**
2761 * @brief Sets the minimum width.
2762 *
2763 * @param Constraint Indicates the pointer to the size constraint.
2764 * @param value Indicates the minimum width, in px.
2765 * @since 12
2766 */
2767 void OH_ArkUI_LayoutConstraint_SetMinWidth(ArkUI_LayoutConstraint* Constraint, int32_t value);
2768 
2769 /**
2770 * @brief Sets the maximum height.
2771 *
2772 * @param Constraint Indicates the pointer to the size constraint.
2773 * @param value Indicates the maximum height, in px.
2774 * @since 12
2775 */
2776 void OH_ArkUI_LayoutConstraint_SetMaxHeight(ArkUI_LayoutConstraint* Constraint, int32_t value);
2777 
2778 /**
2779 * @brief Sets the minimum height.
2780 *
2781 * @param Constraint Indicates the pointer to the size constraint.
2782 * @param value Indicates the minimum height, in px.
2783 * @since 12
2784 */
2785 void OH_ArkUI_LayoutConstraint_SetMinHeight(ArkUI_LayoutConstraint* Constraint, int32_t value);
2786 
2787 /**
2788 * @brief Sets the width percentage reference.
2789 *
2790 * @param Constraint Indicates the pointer to the size constraint.
2791 * @param value Indicates the width percentage reference, in px.
2792 * @since 12
2793 */
2794 void OH_ArkUI_LayoutConstraint_SetPercentReferenceWidth(ArkUI_LayoutConstraint* Constraint, int32_t value);
2795 
2796 /**
2797 * @brief Sets the height percentage reference.
2798 *
2799 * @param Constraint Indicates the pointer to the size constraint.
2800 * @param value Indicates the height percentage reference, in px.
2801 * @since 12
2802 */
2803 void OH_ArkUI_LayoutConstraint_SetPercentReferenceHeight(ArkUI_LayoutConstraint* Constraint, int32_t value);
2804 
2805 /**
2806 * @brief Obtains the pointer to a canvas for drawing, which can be converted into the <b>OH_Drawing_Canvas</b> pointer
2807 * in the <b>Drawing</b> module.
2808 *
2809 * @param context Indicates the pointer to the drawing context.
2810 * @return Returns the pointer to the canvas for drawing.
2811 * @since 12
2812 */
2813 void* OH_ArkUI_DrawContext_GetCanvas(ArkUI_DrawContext* context);
2814 
2815 /**
2816 * @brief Obtains the size of a drawing area.
2817 *
2818 * @param context Indicates the pointer to the drawing context.
2819 * @return Returns the size of the drawing area.
2820 * @since 12
2821 */
2822 ArkUI_IntSize OH_ArkUI_DrawContext_GetSize(ArkUI_DrawContext* context);
2823 
2824 /**
2825 * @brief Creates water flow section configuration.
2826 *
2827 * @return Returns the water flow section configuration.
2828 * @since 12
2829 */
2830 ArkUI_WaterFlowSectionOption* OH_ArkUI_WaterFlowSectionOption_Create(void);
2831 
2832 /**
2833 * @brief Destroys the pointer to a water flow section configuration.
2834 *
2835 * @param option Indicates the pointer to a water flow section configuration.
2836 * @since 12
2837 */
2838 void OH_ArkUI_WaterFlowSectionOption_Dispose(ArkUI_WaterFlowSectionOption* option);
2839 
2840 /**
2841 * @brief Sets the FlowItem block configuration information array length.
2842 *
2843 * @param option FlowItem Indicates the packet configuration.
2844 * @param size Array Length.
2845 * @since 12
2846 */
2847 void OH_ArkUI_WaterFlowSectionOption_SetSize(ArkUI_WaterFlowSectionOption* option,
2848     int32_t size);
2849 
2850 /**
2851 * @brief Sets the number of items in a water flow section.
2852 *
2853 * @param option Indicates the pointer to a water flow section configuration.
2854 * @param index Indicates the index of the target water flow section.
2855 * @param itemCount Indicates the number of items in the water flow section.
2856 * @since 12
2857 */
2858 void OH_ArkUI_WaterFlowSectionOption_SetItemCount(ArkUI_WaterFlowSectionOption* option,
2859     int32_t index, int32_t itemCount);
2860 
2861 /**
2862 * @brief Gets the FlowItem grouping configuration information array length.
2863 *
2864 * @param option FlowItem Indicates the packet configuration.
2865 * @return array size.
2866 * @since 12
2867 */
2868 int32_t OH_ArkUI_WaterFlowSectionOption_GetSize(ArkUI_WaterFlowSectionOption* option);
2869 
2870 /**
2871 * @brief Obtains the number of items in the water flow section that matches the specified index.
2872 *
2873 * @param option Indicates the pointer to a water flow section configuration.
2874 * @param index Indicates the index of the target water flow section.
2875 * @return Returns the number of items in the water flow section.
2876 * @since 12
2877 */
2878 int32_t OH_ArkUI_WaterFlowSectionOption_GetItemCount(ArkUI_WaterFlowSectionOption* option, int32_t index);
2879 
2880 /**
2881 * @brief Sets the number of columns (in a vertical layout) or rows (in a horizontal layout) of a water flow.
2882 *
2883 * @param option Indicates the pointer to a water flow section configuration.
2884 * @param index Indicates the index of the target water flow section.
2885 * @param crossCount Indicates the number of columns or rows, depending on the layout direction.
2886 * @since 12
2887 */
2888 void OH_ArkUI_WaterFlowSectionOption_SetCrossCount(ArkUI_WaterFlowSectionOption* option,
2889     int32_t index, int32_t crossCount);
2890 
2891 /**
2892 * @brief Obtains the number of columns (in a vertical layout) or rows (in a horizontal layout) in the water flow section
2893 * that matches the specified index.
2894 *
2895 * @param option Indicates the pointer to a water flow section configuration.
2896 * @param index Indicates the index of the target water flow section.
2897 * @return Returns the number of columns or rows.
2898 * @since 12
2899 */
2900 int32_t OH_ArkUI_WaterFlowSectionOption_GetCrossCount(ArkUI_WaterFlowSectionOption* option, int32_t index);
2901 
2902 /**
2903 * @brief Sets the gap between columns in the specified water flow section.
2904 *
2905 * @param option Indicates the pointer to a water flow section configuration.
2906 * @param index Indicates the index of the target water flow section.
2907 * @param columnGap Indicates the gap between columns to set.
2908 * @since 12
2909 */
2910 void OH_ArkUI_WaterFlowSectionOption_SetColumnGap(ArkUI_WaterFlowSectionOption* option,
2911     int32_t index, float columnGap);
2912 
2913 /**
2914 * @brief Obtains the gap between columns in the water flow section that matches the specified index.
2915 *
2916 * @param option Indicates the pointer to a water flow section configuration.
2917 * @param index Indicates the index of the target water flow section.
2918 * @return Returns the gap between columns.
2919 * @since 12
2920 */
2921 float OH_ArkUI_WaterFlowSectionOption_GetColumnGap(ArkUI_WaterFlowSectionOption* option, int32_t index);
2922 
2923 /**
2924 * @brief Sets the gap between rows in the specified water flow section.
2925 *
2926 * @param option Indicates the pointer to a water flow section configuration.
2927 * @param index Indicates the index of the target water flow section.
2928 * @param rowGap Indicates the gap between rows to set.
2929 * @since 12
2930 */
2931 void OH_ArkUI_WaterFlowSectionOption_SetRowGap(ArkUI_WaterFlowSectionOption* option,
2932     int32_t index, float rowGap);
2933 
2934 /**
2935 * @brief Obtains the gap between rows in the water flow section that matches the specified index.
2936 *
2937 * @param option Indicates the pointer to a water flow section configuration.
2938 * @param index Indicates the index of the target water flow section.
2939 * @return Returns the gap between rows.
2940 * @since 12
2941 */
2942 float OH_ArkUI_WaterFlowSectionOption_GetRowGap(ArkUI_WaterFlowSectionOption* option, int32_t index);
2943 
2944 /**
2945 * @brief Sets the margins for the specified water flow section.
2946 *
2947 * @param option Indicates the pointer to a water flow section configuration.
2948 * @param index Indicates the index of the target water flow section.
2949 * @param marginTop Indicates the top margin of the water flow section.
2950 * @param marginRight Indicates the right margin of the water flow section.
2951 * @param marginBottom Indicates the bottom margin of the water flow section.
2952 * @param marginLeft Indicates the left margin of the water flow section.
2953 * @since 12
2954 */
2955 void OH_ArkUI_WaterFlowSectionOption_SetMargin(ArkUI_WaterFlowSectionOption* option, int32_t index,
2956     float marginTop, float marginRight, float marginBottom, float marginLeft);
2957 
2958 /**
2959 * @brief Obtains the margins of the water flow section that matches the specified index.
2960 *
2961 * @param option Indicates the pointer to a water flow section configuration.
2962 * @param index Indicates the index of the target water flow section.
2963 * @return Returns the margins.
2964 * @since 12
2965 */
2966 ArkUI_Margin OH_ArkUI_WaterFlowSectionOption_GetMargin(ArkUI_WaterFlowSectionOption* option, int32_t index);
2967 
2968 /**
2969 * @brief 通过FlowItem分组配置信息根据flowItemIndex获取指定Item的主轴大小。
2970 *
2971 * @param option FlowItem分组配置信息。
2972 * @param index FlowItem索引值。
2973 * @param callback 根据index获取指定Item的主轴大小。
2974 * @since 12
2975 */
2976 void OH_ArkUI_WaterFlowSectionOption_RegisterGetItemMainSizeCallbackByIndex(ArkUI_WaterFlowSectionOption* option,
2977     int32_t index, float(*callback)(int32_t itemIndex));
2978 
2979 /**
2980 * @brief 通过FlowItem分组配置信息根据flowItemIndex获取指定Item的主轴大小。
2981 *
2982 * @param option FlowItem分组配置信息。
2983 * @param index FlowItem索引值。
2984 * @param userData FlowItem自定义数据。
2985 * @param callback 根据index获取指定Item的主轴大小。
2986 * @since 12
2987 */
2988 void OH_ArkUI_WaterFlowSectionOption_RegisterGetItemMainSizeCallbackByIndexWithUserData(
2989     ArkUI_WaterFlowSectionOption* option, int32_t index, void* userData,
2990     float (*callback)(int32_t itemIndex, void* userData));
2991 
2992 /**
2993  * @brief Create auxiliary line information in the RelativeContaine container.
2994  *
2995  * @param size The number of auxiliary lines.
2996  * @return auxiliary line information.
2997  * @since 12
2998  */
2999 ArkUI_GuidelineOption* OH_ArkUI_GuidelineOption_Create(int32_t size);
3000 
3001 /**
3002  * @brief Destroy auxiliary line information.
3003  *
3004  * @param guideline auxiliary line information.
3005  * @since 12
3006  */
3007 void OH_ArkUI_GuidelineOption_Dispose(ArkUI_GuidelineOption* guideline);
3008 
3009 /**
3010  * @brief Set the Id of the auxiliary line.
3011  *
3012  * @param guideline auxiliary line information.
3013  * @param value id, must be unique and cannot have the same name as the component in the container.
3014  * @param index auxiliary line index value.
3015  * @since 12
3016  */
3017 void OH_ArkUI_GuidelineOption_SetId(ArkUI_GuidelineOption* guideline, const char* value, int32_t index);
3018 
3019 /**
3020  * @brief Set the direction of the auxiliary line.
3021  *
3022  * @param guideline auxiliary line information.
3023  * @param value direction.
3024  * @param index auxiliary line index value.
3025  * @since 12
3026  */
3027 void OH_ArkUI_GuidelineOption_SetDirection(ArkUI_GuidelineOption* guideline, ArkUI_Axis value, int32_t index);
3028 
3029 /**
3030  * @brief Set the distance from the left or top of the container.
3031  *
3032  * @param guideline auxiliary line information.
3033  * @param value The distance from the left or top of the container.
3034  * @param index auxiliary line index value.
3035  * @since 12
3036  */
3037 void OH_ArkUI_GuidelineOption_SetPositionStart(ArkUI_GuidelineOption* guideline, float value, int32_t index);
3038 
3039 /**
3040  * @brief Set the distance from the right or bottom of the container.
3041  *
3042  * @param guideline auxiliary line information.
3043  * @param value The distance from the right side or bottom of the container.
3044  * @param index auxiliary line index value.
3045  * @since 12
3046  */
3047 void OH_ArkUI_GuidelineOption_SetPositionEnd(ArkUI_GuidelineOption* guideline, float value, int32_t index);
3048 
3049 /**
3050  * @brief Get the Id of the auxiliary line.
3051  *
3052  * @param guideline auxiliary line information.
3053  * @param index auxiliary line index value.
3054  * @return Id.
3055  * @since 12
3056  */
3057 const char* OH_ArkUI_GuidelineOption_GetId(ArkUI_GuidelineOption* guideline, int32_t index);
3058 
3059 /**
3060  * @brief Get the direction of the auxiliary line.
3061  *
3062  * @param guideline auxiliary line information.
3063  * @param index auxiliary line index value.
3064  * @return direction.
3065  * @since 12
3066  */
3067 ArkUI_Axis OH_ArkUI_GuidelineOption_GetDirection(ArkUI_GuidelineOption* guideline, int32_t index);
3068 
3069 /**
3070  * @brief Get the distance from the left or top of the container.
3071  *
3072  * @param guideline auxiliary line information.
3073  * @param index auxiliary line index value.
3074  * @return The distance from the left or top of the container.
3075  * @since 12
3076  */
3077 float OH_ArkUI_GuidelineOption_GetPositionStart(ArkUI_GuidelineOption* guideline, int32_t index);
3078 
3079 /**
3080  * @brief Get the distance from the right side or bottom of the container.
3081  *
3082  * @param guideline auxiliary line information.
3083  * @param index auxiliary line index value.
3084  * @return The distance from the right side or bottom of the container.
3085  * @since 12
3086  */
3087 float OH_ArkUI_GuidelineOption_GetPositionEnd(ArkUI_GuidelineOption* guideline, int32_t index);
3088 
3089 /**
3090  * @brief creates barrier information within the RelativeContaine container.
3091  *
3092  * @param size Number of barriers.
3093  * @return barrier information.
3094  * @since 12
3095  */
3096 ArkUI_BarrierOption* OH_ArkUI_BarrierOption_Create(int32_t size);
3097 
3098 /**
3099  * @brief Destroy barrier information.
3100  *
3101  * @param barrierStyle barrier information.
3102  * @since 12
3103  */
3104 void OH_ArkUI_BarrierOption_Dispose(ArkUI_BarrierOption* barrierStyle);
3105 
3106 /**
3107  * @brief Set the Id of the barrier.
3108  *
3109  * @param barrierStyle barrier information.
3110  * @param value id, must be unique and cannot have the same name as the component in the container.
3111  * @param index Barrier index value.
3112  * @since 12
3113  */
3114 void OH_ArkUI_BarrierOption_SetId(ArkUI_BarrierOption* barrierStyle, const char* value, int32_t index);
3115 
3116 /**
3117  * @brief Set the direction of the barrier.
3118  *
3119  * @param barrierStyle barrier information.
3120  * @param value direction.
3121  * @param index Barrier index value.
3122  * @since 12
3123  */
3124 void OH_ArkUI_BarrierOption_SetDirection(
3125     ArkUI_BarrierOption* barrierStyle, ArkUI_BarrierDirection value, int32_t index);
3126 
3127 /**
3128  * @brief Sets the dependent component of the barrier.
3129  *
3130  * @param barrierStyle barrier information.
3131  * @param value The ID of the dependent component.
3132  * @param index Barrier index value.
3133  * @since 12
3134  */
3135 void OH_ArkUI_BarrierOption_SetReferencedId(ArkUI_BarrierOption* barrierStyle, const char* value, int32_t index);
3136 
3137 /**
3138  * @brief Get the Id of the barrier.
3139  *
3140  * @param barrierStyle auxiliary line information.
3141  * @param index auxiliary line index value.
3142  * @return The Id of the barrier.
3143  * @since 12
3144  */
3145 const char* OH_ArkUI_BarrierOption_GetId(ArkUI_BarrierOption* barrierStyle, int32_t index);
3146 
3147 /**
3148  * @brief Gets the direction of the barrier.
3149  *
3150  * @param barrierStyle auxiliary line information.
3151  * @param index auxiliary line index value.
3152  * @return The direction of the barrier.
3153  * @since 12
3154  */
3155 ArkUI_BarrierDirection OH_ArkUI_BarrierOption_GetDirection(ArkUI_BarrierOption* barrierStyle, int32_t index);
3156 
3157 /**
3158  * @brief Get the dependent components of the barrier.
3159  *
3160  * @param barrierStyle auxiliary line information.
3161  * @param index auxiliary line index value.
3162  * @param referencedIndex dependent component Id index value.
3163  * @return The barrier's dependent components.
3164  * @since 12
3165  */
3166 const char* OH_ArkUI_BarrierOption_GetReferencedId(
3167     ArkUI_BarrierOption* barrierStyle, int32_t index, int32_t referencedIndex);
3168 
3169 /**
3170  * @brief Gets the number of dependent components of the barrier.
3171  *
3172  * @param barrierStyle auxiliary line information.
3173  * @param index auxiliary line index value.
3174  * @return The number of dependent components of the barrier.
3175  * @since 12
3176  */
3177 int32_t OH_ArkUI_BarrierOption_GetReferencedIdSize(ArkUI_BarrierOption* barrierStyle, int32_t index);
3178 
3179 /**
3180  * @brief creates alignment rule information for subcomponents in relative containers.
3181  *
3182  * @return Alignment rule information.
3183  * @since 12
3184  */
3185 ArkUI_AlignmentRuleOption* OH_ArkUI_AlignmentRuleOption_Create(void);
3186 
3187 /**
3188  * @brief Destroys the alignment rule information of subcomponents in relative containers.
3189  *
3190  * @param option Alignment rule information of subcomponents in the relative container.
3191  * @since 12
3192  */
3193 void OH_ArkUI_AlignmentRuleOption_Dispose(ArkUI_AlignmentRuleOption* option);
3194 
3195 /**
3196  * @brief Set the start alignment parameter.
3197  *
3198  * @param option Alignment rule information of subcomponents in the relative container.
3199  * @param id The id value of the anchor component.
3200  * @param value Alignment relative to the anchor component.
3201  * @since 12
3202  */
3203 void OH_ArkUI_AlignmentRuleOption_SetStart(
3204     ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_HorizontalAlignment alignment);
3205 
3206 /**
3207  * @brief Set the end alignment parameter.
3208  *
3209  * @param option Alignment rule information of subcomponents in the relative container.
3210  * @param id The id value of the anchor component.
3211  * @param value Alignment relative to the anchor component.
3212  * @since 12
3213  */
3214 void OH_ArkUI_AlignmentRuleOption_SetEnd(
3215     ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_HorizontalAlignment alignment);
3216 
3217 /**
3218  * @brief Set the parameters for horizontal center alignment.
3219  *
3220  * @param option Alignment rule information of subcomponents in the relative container.
3221  * @param id The id value of the anchor component.
3222  * @param value Alignment relative to anchor component
3223  * @since 12
3224  */
3225 void OH_ArkUI_AlignmentRuleOption_SetCenterHorizontal(
3226     ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_HorizontalAlignment alignment);
3227 
3228 /**
3229  * @brief Set the parameters for top alignment.
3230  *
3231  * @param option Alignment rule information of subcomponents in the relative container.
3232  * @param id The id value of the anchor component.
3233  * @param value Alignment relative to anchor component
3234  * @since 12
3235  */
3236 void OH_ArkUI_AlignmentRuleOption_SetTop(
3237     ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_VerticalAlignment alignment);
3238 
3239 /**
3240  * @brief Set the bottom alignment parameters.
3241  *
3242  * @param option Alignment rule information of subcomponents in the relative container.
3243  * @param id The id value of the anchor component.
3244  * @param value Alignment relative to anchor component
3245  * @since 12
3246  */
3247 void OH_ArkUI_AlignmentRuleOption_SetBottom(
3248     ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_VerticalAlignment alignment);
3249 
3250 /**
3251  * @brief Set the parameters for vertical center alignment.
3252  *
3253  * @param option Alignment rule information of subcomponents in the relative container.
3254  * @param id The id value of the anchor component.
3255  * @param value Alignment relative to the anchor component.
3256  * @since 12
3257  */
3258 void OH_ArkUI_AlignmentRuleOption_SetCenterVertical(
3259     ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_VerticalAlignment alignment);
3260 
3261 /**
3262  * @brief Sets the horizontal offset parameter of the component under the anchor point constraint.
3263  *
3264  * @param option Alignment rule information of subcomponents in the relative container.
3265  * @param horizontal bias value in the horizontal direction.
3266  * @since 12
3267  */
3268 void OH_ArkUI_AlignmentRuleOption_SetBiasHorizontal(ArkUI_AlignmentRuleOption* option, float horizontal);
3269 
3270 /**
3271  * @brief Set the vertical offset parameter of the component under the anchor point constraint.
3272  *
3273  * @param option Alignment rule information of subcomponents in the relative container.
3274  * @param horizontal bias value in the vertical direction.
3275  * @since 12
3276  */
3277 void OH_ArkUI_AlignmentRuleOption_SetBiasVertical(ArkUI_AlignmentRuleOption* option, float vertical);
3278 
3279 /**
3280  * @brief Get the Id of the start-aligned parameter.
3281  *
3282  * @param option Alignment rule information of subcomponents in the relative container.
3283  * @return The id value of the anchor component.
3284  * @since 12
3285  */
3286 const char* OH_ArkUI_AlignmentRuleOption_GetStartId(ArkUI_AlignmentRuleOption* option);
3287 
3288 /**
3289  * @brief Gets the alignment of the start-aligned parameter.
3290  *
3291  * @param option Alignment rule information of subcomponents in the relative container.
3292  * @return The alignment of the parameters.
3293  * @since 12
3294  */
3295 ArkUI_HorizontalAlignment OH_ArkUI_AlignmentRuleOption_GetStartAlignment(ArkUI_AlignmentRuleOption* option);
3296 
3297 /**
3298  * @brief Get the end alignment parameter.
3299  *
3300  * @param option Alignment rule information of subcomponents in the relative container.
3301  * @return End-aligned parameter id.
3302  * @since 12
3303  */
3304 const char* OH_ArkUI_AlignmentRuleOption_GetEndId(ArkUI_AlignmentRuleOption* option);
3305 
3306 /**
3307  * @brief Get the end alignment parameter.
3308  *
3309  * @param option Alignment rule information of subcomponents in the relative container.
3310  * @return The alignment of the end-aligned parameter.
3311  * @since 12
3312  */
3313 ArkUI_HorizontalAlignment OH_ArkUI_AlignmentRuleOption_GetEndAlignment(ArkUI_AlignmentRuleOption* option);
3314 
3315 /**
3316  * @brief Gets the parameters of horizontal center alignment.
3317  *
3318  * @param option Alignment rule information of subcomponents in the relative container.
3319  * @return The id of the parameter of horizontal center alignment.
3320  * @since 12
3321  */
3322 const char* OH_ArkUI_AlignmentRuleOption_GetCenterIdHorizontal(ArkUI_AlignmentRuleOption* option);
3323 
3324 /**
3325  * @brief Gets the parameters of horizontal center alignment.
3326  *
3327  * @param option Alignment rule information of subcomponents in the relative container.
3328  * @return The alignment of the horizontally centered alignment parameter.
3329  * @since 12
3330  */
3331 ArkUI_HorizontalAlignment OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentHorizontal(ArkUI_AlignmentRuleOption* option);
3332 
3333 /**
3334  * @brief Get the top-aligned parameters.
3335  *
3336  * @param option Alignment rule information of subcomponents in the relative container.
3337  * @return Top aligned parameter id.
3338  * @since 12
3339  */
3340 const char* OH_ArkUI_AlignmentRuleOption_GetTopId(ArkUI_AlignmentRuleOption* option);
3341 
3342 /**
3343  * @brief Get the top-aligned parameters.
3344  *
3345  * @param option Alignment rule information of subcomponents in the relative container.
3346  * @return The alignment of the top-aligned parameter.
3347  * @since 12
3348  */
3349 ArkUI_VerticalAlignment OH_ArkUI_AlignmentRuleOption_GetTopAlignment(ArkUI_AlignmentRuleOption* option);
3350 
3351 /**
3352  * @brief Get the bottom alignment parameters.
3353  *
3354  * @param option Alignment rule information of subcomponents in the relative container.
3355  * @return The id of the bottom-aligned parameter.
3356  * @since 12
3357  */
3358 const char* OH_ArkUI_AlignmentRuleOption_GetBottomId(ArkUI_AlignmentRuleOption* option);
3359 
3360 /**
3361  * @brief Get the bottom alignment parameters.
3362  *
3363  * @param option Alignment rule information of subcomponents in the relative container.
3364  * @return The alignment of the bottom-aligned parameter.
3365  * @since 12
3366  */
3367 ArkUI_VerticalAlignment OH_ArkUI_AlignmentRuleOption_GetBottomAlignment(ArkUI_AlignmentRuleOption* option);
3368 
3369 /**
3370  * @brief Gets the parameters of vertical center alignment.
3371  *
3372  * @param option Alignment rule information of subcomponents in the relative container.
3373  * @return The id of the vertical center alignment parameter.
3374  * @since 12
3375  */
3376 const char* OH_ArkUI_AlignmentRuleOption_GetCenterIdVertical(ArkUI_AlignmentRuleOption* option);
3377 
3378 /**
3379  * @brief Gets the parameters of vertical center alignment.
3380  *
3381  * @param option Alignment rule information of subcomponents in the relative container.
3382  * @return The alignment of the vertical center alignment parameter.
3383  * @since 12
3384  */
3385 ArkUI_VerticalAlignment OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentVertical(ArkUI_AlignmentRuleOption* option);
3386 
3387 /**
3388  * @brief Get the bias value in the horizontal direction.
3389  *
3390  * @param option Alignment rule information of subcomponents in the relative container.
3391  * @return The bias value in the horizontal direction.
3392  * @since 12
3393  */
3394 float OH_ArkUI_AlignmentRuleOption_GetBiasHorizontal(ArkUI_AlignmentRuleOption* option);
3395 
3396 /**
3397  * @brief Get the bias value in the vertical direction.
3398  *
3399  * @param option Alignment rule information of subcomponents in the relative container.
3400  * @return bias value in vertical direction.
3401  * @since 12
3402 */
3403 float OH_ArkUI_AlignmentRuleOption_GetBiasVertical(ArkUI_AlignmentRuleOption* option);
3404 
3405 /**
3406  * @brief Creates a navigation indicator.
3407  *
3408  * @param type Indicates the type of the indicator.
3409  * @return Returns the pointer to the new indicator.
3410  * @since 12
3411 */
3412 ArkUI_SwiperIndicator* OH_ArkUI_SwiperIndicator_Create(ArkUI_SwiperIndicatorType type);
3413 
3414 /**
3415  * @brief Destroys the pointer to the indicator.
3416  *
3417  * @param indicator Indicates the pointer to the indicator.
3418  * @since 12
3419 */
3420 void OH_ArkUI_SwiperIndicator_Dispose(ArkUI_SwiperIndicator* indicator);
3421 
3422 /**
3423  * @brief Sets the distance between the navigation point and the start of the swiper.
3424  *
3425  * @param indicator Indicates the pointer to the indicator.
3426  * @param value Indicates the distance between the navigation point and the start of the swiper.
3427  * @since 12
3428 */
3429 void OH_ArkUI_SwiperIndicator_SetStartPosition(ArkUI_SwiperIndicator* indicator, float value);
3430 
3431 /**
3432  * @brief Obtains the distance between the navigation point and the start of the swiper.
3433  *
3434  * @param indicator Indicates the pointer to the indicator.
3435  * @return Returns the distance between the navigation point and the start of the swiper.
3436  * @since 12
3437 */
3438 float OH_ArkUI_SwiperIndicator_GetStartPosition(ArkUI_SwiperIndicator* indicator);
3439 
3440 /**
3441  * @brief Sets the distance between the navigation point and the top of the swiper.
3442  *
3443  * @param indicator Indicates the pointer to the indicator.
3444  * @param value Indicates the distance between the navigation point and the top of the swiper.
3445  * @since 12
3446 */
3447 void OH_ArkUI_SwiperIndicator_SetTopPosition(ArkUI_SwiperIndicator* indicator, float value);
3448 
3449 /**
3450  * @brief Obtains the distance between the navigation point and the top of the swiper.
3451  *
3452  * @param indicator Indicates the pointer to the indicator.
3453  * @return Returns the distance between the navigation point and the top of the swiper.
3454  * @since 12
3455 */
3456 float OH_ArkUI_SwiperIndicator_GetTopPosition(ArkUI_SwiperIndicator* indicator);
3457 
3458 /**
3459  * @brief Sets the distance between the navigation point and the end of the swiper.
3460  *
3461  * @param indicator Indicates the pointer to the indicator.
3462  * @param value Indicates the distance between the navigation point and the end of the swiper.
3463  * @since 12
3464 */
3465 void OH_ArkUI_SwiperIndicator_SetEndPosition(ArkUI_SwiperIndicator* indicator, float value);
3466 
3467 /**
3468  * @brief Obtains the distance between the navigation point and the end of the swiper.
3469  *
3470  * @param indicator Indicates the pointer to the indicator.
3471  * @return Returns the distance between the navigation point and the end of the swiper.
3472  * @since 12
3473 */
3474 float OH_ArkUI_SwiperIndicator_GetEndPosition(ArkUI_SwiperIndicator* indicator);
3475 
3476 /**
3477  * @brief Sets the distance between the navigation point and the bottom of the swiper.
3478  *
3479  * @param indicator Indicates the pointer to the indicator.
3480  * @param value Indicates the distance between the navigation point and the bottom of the swiper.
3481  * @since 12
3482 */
3483 void OH_ArkUI_SwiperIndicator_SetBottomPosition(ArkUI_SwiperIndicator* indicator, float value);
3484 
3485 /**
3486  * @brief Obtains the distance between the navigation point and the bottom of the swiper.
3487  *
3488  * @param indicator Indicates the pointer to the indicator.
3489  * @return Returns the distance between the navigation point and the bottom of the swiper.
3490  * @since 12
3491 */
3492 float OH_ArkUI_SwiperIndicator_GetBottomPosition(ArkUI_SwiperIndicator* indicator);
3493 
3494 /**
3495  * @brief Sets the width of the dot for the dot indicator.
3496  *
3497  * @param indicator Indicates the pointer to the indicator.
3498  * @param value Indicates the width of the dot for the dot indicator.
3499  * @since 12
3500 */
3501 void OH_ArkUI_SwiperIndicator_SetItemWidth(ArkUI_SwiperIndicator* indicator, float value);
3502 
3503 /**
3504  * @brief Obtains the width of the dot for the dot indicator.
3505  *
3506  * @param indicator Indicates the pointer to the indicator.
3507  * @return Returns the width of the dot for the dot indicator.
3508  * @since 12
3509 */
3510 float OH_ArkUI_SwiperIndicator_GetItemWidth(ArkUI_SwiperIndicator* indicator);
3511 
3512 /**
3513  * @brief Sets the height of the dot for the dot indicator.
3514  *
3515  * @param indicator Indicates the pointer to the indicator.
3516  * @param value Indicates the height of the dot for the dot indicator.
3517  * @since 12
3518 */
3519 void OH_ArkUI_SwiperIndicator_SetItemHeight(ArkUI_SwiperIndicator* indicator, float value);
3520 
3521 /**
3522  * @brief  Obtains the height of the dot for the dot indicator.
3523  *
3524  * @param indicator Indicates the pointer to the indicator.
3525  * @return Returns the height of the dot for the dot indicator.
3526  * @since 12
3527 */
3528 float OH_ArkUI_SwiperIndicator_GetItemHeight(ArkUI_SwiperIndicator* indicator);
3529 
3530 /**
3531  * @brief Sets the width of the selected dot for the dot indicator.
3532  *
3533  * @param indicator Indicates the pointer to the indicator.
3534  * @param value Indicates the width of the selected dot for the dot indicator.
3535  * @since 12
3536 */
3537 void OH_ArkUI_SwiperIndicator_SetSelectedItemWidth(ArkUI_SwiperIndicator* indicator, float value);
3538 
3539 /**
3540  * @brief  Obtains the width of the selected dot for the dot indicator.
3541  *
3542  * @param indicator Indicates the pointer to the indicator.
3543  * @return Returns the width of the selected dot for the dot indicator.
3544  * @since 12
3545 */
3546 float OH_ArkUI_SwiperIndicator_GetSelectedItemWidth(ArkUI_SwiperIndicator* indicator);
3547 
3548 /**
3549  * @brief Sets the height of the selected dot for the dot indicator.
3550  *
3551  * @param indicator Indicates the pointer to the indicator.
3552  * @param value Indicates the height of the selected dot for the dot indicator.
3553  * @since 12
3554 */
3555 void OH_ArkUI_SwiperIndicator_SetSelectedItemHeight(ArkUI_SwiperIndicator* indicator, float value);
3556 
3557 /**
3558  * @brief  Obtains the height of the selected dot for the dot indicator.
3559  *
3560  * @param indicator Indicates the pointer to the indicator.
3561  * @return Returns the height of the selected dot for the dot indicator.
3562  * @since 12
3563 */
3564 float OH_ArkUI_SwiperIndicator_GetSelectedItemHeight(ArkUI_SwiperIndicator* indicator);
3565 
3566 /**
3567  * @brief Sets whether to display the mask style of the dot navigation indicator.
3568  *
3569  * @param indicator Indicates the pointer to the indicator.
3570  * @param mask Whether to display the mask style. True means to display.
3571  * @since 12
3572 */
3573 void OH_ArkUI_SwiperIndicator_SetMask(ArkUI_SwiperIndicator* indicator, int32_t mask);
3574 
3575 /**
3576  * @brief Obtains whether to display the mask style of the dot navigation indicator.
3577  *
3578  * @param indicator Indicates the pointer to the indicator.
3579  * @return Returns whether to display the mask style. True means to display.
3580  * @since 12
3581 */
3582 int32_t OH_ArkUI_SwiperIndicator_GetMask(ArkUI_SwiperIndicator* indicator);
3583 
3584 /**
3585  * @brief Sets the color of the dot navigation indicator.
3586  *
3587  * @param indicator Indicates the pointer to the indicator.
3588  * @param color the color of the dot navigation indicator, in 0xARGB format.
3589  * @since 12
3590 */
3591 void OH_ArkUI_SwiperIndicator_SetColor(ArkUI_SwiperIndicator* indicator, uint32_t color);
3592 
3593 /**
3594  * @brief Obtains the color of the dot navigation indicator.
3595  *
3596  * @param indicator Indicates the pointer to the indicator.
3597  * @return Returns the color of the dot navigation indicator, in 0xARGB format.
3598  * @since 12
3599 */
3600 uint32_t OH_ArkUI_SwiperIndicator_GetColor(ArkUI_SwiperIndicator* indicator);
3601 
3602 /**
3603  * @brief Sets the color of the selected dot for the navigation indicator.
3604  *
3605  * @param indicator Indicates the pointer to the indicator.
3606  * @param selectedColor the color of the selected dot, in 0xARGB format.
3607  * @since 12
3608 */
3609 void OH_ArkUI_SwiperIndicator_SetSelectedColor(ArkUI_SwiperIndicator* indicator, uint32_t selectedColor);
3610 
3611 /**
3612  * @brief Obtains the color of the selected dot for the dot navigation indicator.
3613  *
3614  * @param indicator Indicates the pointer to the indicator.
3615  * @return Returns the color of the selected dot, in 0xARGB format.
3616  * @since 12
3617 */
3618 uint32_t OH_ArkUI_SwiperIndicator_GetSelectedColor(ArkUI_SwiperIndicator* indicator);
3619 
3620 /**
3621  * @brief Sets the number of maxDisplayCount for the dot navigation indicator.
3622  *
3623  * @param indicator Indicates the pointer to the indicator.
3624  * @param maxDisplayCount the maxDisplayCount of the navigation dot, span is 6-9.
3625  * @return Error code.
3626  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
3627  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
3628  * @since 12
3629 */
3630 int32_t OH_ArkUI_SwiperIndicator_SetMaxDisplayCount(ArkUI_SwiperIndicator* indicator, int32_t maxDisplayCount);
3631 
3632 /**
3633  * @brief Obtains the number of maxDisplayCount for the dot navigation indicator.
3634  *
3635  * @param indicator Indicates the pointer to the indicator.
3636  * @return Returns the number of the maxDisplayCount, span is 6-9.
3637  * @since 12
3638 */
3639 int32_t OH_ArkUI_SwiperIndicator_GetMaxDisplayCount(ArkUI_SwiperIndicator* indicator);
3640 
3641 /**
3642  * @brief Sets whether to ignore the size of the indicator for {@link OH_ArkUI_SwiperIndicator_SetBottomPosition}.
3643  *
3644  * @param indicator Indicates the pointer to the indicator.
3645  * @param ignoreSize Whether to ignore the size of the indicator. The value 1 means to ignore, and 0 means the opposite.
3646  * The default value is 0.
3647  * @since 16
3648 */
3649 void OH_ArkUI_SwiperIndicator_SetIgnoreSizeOfBottom(ArkUI_SwiperIndicator* indicator, int32_t ignoreSize);
3650 
3651 /**
3652  * @brief Obtains whether to ignore the size of the indicator for {@link OH_ArkUI_SwiperIndicator_SetBottomPosition}.
3653  *
3654  * @param indicator Indicates the pointer to the indicator.
3655  * @return Returns whether to ignore the size of the indicator.
3656  * @since 16
3657 */
3658 int32_t OH_ArkUI_SwiperIndicator_GetIgnoreSizeOfBottom(ArkUI_SwiperIndicator* indicator);
3659 
3660 /**
3661  * @brief Sets the space between the dots of the navigation indicator.
3662  *
3663  * @param indicator Indicates the pointer to the indicator.
3664  * @param space the space between the dots of the navigation indicator, the default value is 8vp.
3665  * @since 16
3666 */
3667 void OH_ArkUI_SwiperIndicator_SetSpace(ArkUI_SwiperIndicator* indicator, float space);
3668 
3669 /**
3670  * @brief Obtains the space between the dots of the navigation indicator.
3671  *
3672  * @param indicator Indicates the pointer to the indicator.
3673  * @return the space between the dots of the navigation indicator
3674  * @since 16
3675 */
3676 float OH_ArkUI_SwiperIndicator_GetSpace(ArkUI_SwiperIndicator* indicator);
3677 
3678 /**
3679  * @brief Creates a digital indicator.
3680  *
3681  * @return Returns the pointer to the new indicator.
3682  * @since 16
3683  */
3684 ArkUI_SwiperDigitIndicator *OH_ArkUI_SwiperDigitIndicator_Create();
3685 
3686 /**
3687  * @brief Sets the distance between the digital indicator and the start of the swiper.
3688  *
3689  * @param indicator The pointer to the digital indicator.
3690  * @param value Indicates the distance between the digital indicator and the start of the swiper.
3691  * @since 16
3692  */
3693 void OH_ArkUI_SwiperDigitIndicator_SetStartPosition(ArkUI_SwiperDigitIndicator* indicator, float value);
3694 
3695 /**
3696  * @brief Gets the distance between the digital indicator and the start of the swiper.
3697  *
3698  * @param indicator The pointer to the digital indicator.
3699  * @return Returns the distance between the digital indicator and the start of the swiper.
3700  * @since 16
3701  */
3702 float OH_ArkUI_SwiperDigitIndicator_GetStartPosition(ArkUI_SwiperDigitIndicator* indicator);
3703 
3704 /**
3705  * @brief Sets the distance between the digital indicator and the top of the swiper.
3706  *
3707  * @param indicator The pointer to the digital indicator.
3708  * @param value Indicates the distance between the digital indicator and the top of the swiper.
3709  * @since 16
3710  */
3711 void OH_ArkUI_SwiperDigitIndicator_SetTopPosition(ArkUI_SwiperDigitIndicator* indicator, float value);
3712 
3713 /**
3714  * @brief Gets the distance between the digital indicator and the top of the swiper.
3715  *
3716  * @param indicator The pointer to the digital indicator.
3717  * @return Returns the distance between the digital indicator and the top of the swiper.
3718  * @since 16
3719  */
3720 float OH_ArkUI_SwiperDigitIndicator_GetTopPosition(ArkUI_SwiperDigitIndicator* indicator);
3721 
3722 /**
3723  * @brief Sets the distance between the digital indicator and the end of the swiper.
3724  *
3725  * @param indicator The pointer to the digital indicator.
3726  * @param value Indicates the distance between the digital indicator and the end of the swiper.
3727  * @since 16
3728  */
3729 void OH_ArkUI_SwiperDigitIndicator_SetEndPosition(ArkUI_SwiperDigitIndicator* indicator, float value);
3730 
3731 /**
3732  * @brief Gets the distance between the digital indicator and the end of the swiper.
3733  *
3734  * @param indicator The pointer to the digital indicator.
3735  * @return Returns the distance between the digital indicator and the end of the swiper.
3736  * @since 16
3737  */
3738 float OH_ArkUI_SwiperDigitIndicator_GetEndPosition(ArkUI_SwiperDigitIndicator* indicator);
3739 
3740 /**
3741  * @brief Sets the distance between the digital indicator and the bottom of the swiper.
3742  *
3743  * @param indicator The pointer to the digital indicator.
3744  * @param value Returns the distance between the digital indicator and the bottom of the swiper.
3745  * @since 16
3746  */
3747 void OH_ArkUI_SwiperDigitIndicator_SetBottomPosition(ArkUI_SwiperDigitIndicator* indicator, float value);
3748 
3749 /**
3750  * @brief Gets the distance between the digital indicator and the bottom of the swiper.
3751  *
3752  * @param indicator The pointer to the digital indicator.
3753  * @return Returns the distance between the digital indicator and the bottom of the swiper.
3754  * @since 16
3755  */
3756 float OH_ArkUI_SwiperDigitIndicator_GetBottomPosition(ArkUI_SwiperDigitIndicator* indicator);
3757 
3758 /**
3759  * @brief Sets the font color of total count in the digital indicator.
3760  *
3761  * @param indicator The pointer to the digital indicator.
3762  * @param color font color, in 0xARGB format. Default value: 0xFF182431.
3763  * @since 16
3764  */
3765 void OH_ArkUI_SwiperDigitIndicator_SetFontColor(ArkUI_SwiperDigitIndicator* indicator, uint32_t color);
3766 
3767 /**
3768  * @brief Gets the font color of total count in the digital indicator.
3769  *
3770  * @param indicator The pointer to the digital indicator.
3771  * @return font color, in 0xARGB format.
3772  * @since 16
3773  */
3774 uint32_t OH_ArkUI_SwiperDigitIndicator_GetFontColor(ArkUI_SwiperDigitIndicator* indicator);
3775 
3776 /**
3777  * @brief Sets the font color of selected index in the digital indicator.
3778  *
3779  * @param indicator The pointer to the digital indicator.
3780  * @param selectedColor font color, in 0xARGB format. Default value: 0xFF182431.
3781  * @since 16
3782  */
3783 void OH_ArkUI_SwiperDigitIndicator_SetSelectedFontColor(ArkUI_SwiperDigitIndicator* indicator, uint32_t selectedColor);
3784 
3785 /**
3786  * @brief Gets the font color of selected index in the digital indicator.
3787  *
3788  * @param indicator The pointer to the digital indicator.
3789  * @return font color, in 0xARGB format.
3790  * @since 16
3791  */
3792 uint32_t OH_ArkUI_SwiperDigitIndicator_GetSelectedFontColor(ArkUI_SwiperDigitIndicator* indicator);
3793 
3794 /**
3795  * @brief Sets the font size of total count in the digital indicator.
3796  *
3797  * @param indicator The pointer to the digital indicator.
3798  * @param size font size, in fp.
3799  * @since 16
3800  */
3801 void OH_ArkUI_SwiperDigitIndicator_SetFontSize(ArkUI_SwiperDigitIndicator* indicator, float size);
3802 
3803 /**
3804  * @brief Gets the font size of total count in the digital indicator.
3805  *
3806  * @param indicator The pointer to the digital indicator.
3807  * @return font size, in fp.
3808  * @since 16
3809  */
3810 float OH_ArkUI_SwiperDigitIndicator_GetFontSize(ArkUI_SwiperDigitIndicator* indicator);
3811 
3812 /**
3813  * @brief Sets the font size of selected index in the digital indicator.
3814  *
3815  * @param indicator The pointer to the digital indicator.
3816  * @param size font size, in fp.
3817  * @since 16
3818  */
3819 void OH_ArkUI_SwiperDigitIndicator_SetSelectedFontSize(ArkUI_SwiperDigitIndicator* indicator, float size);
3820 
3821 /**
3822  * @brief Gets the font size of selected index in the digital indicator.
3823  *
3824  * @param indicator The pointer to the digital indicator.
3825  * @return font size, in fp.
3826  * @since 16
3827  */
3828 float OH_ArkUI_SwiperDigitIndicator_GetSelectedFontSize(ArkUI_SwiperDigitIndicator* indicator);
3829 
3830 /**
3831  * @brief Sets the font weight of total count in the digital indicator.
3832  *
3833  * @param indicator The pointer to the digital indicator.
3834  * @param fontWeight font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.
3835  * @since 16
3836  */
3837 void OH_ArkUI_SwiperDigitIndicator_SetFontWeight(ArkUI_SwiperDigitIndicator *indicator, ArkUI_FontWeight fontWeight);
3838 
3839 /**
3840  * @brief Gets the font weight of total count in the digital indicator.
3841  *
3842  * @param indicator The pointer to the digital indicator.
3843  * @return font weight {@link ArkUI_FontWeight}.
3844  * @since 16
3845  */
3846 ArkUI_FontWeight OH_ArkUI_SwiperDigitIndicator_GetFontWeight(ArkUI_SwiperDigitIndicator* indicator);
3847 
3848 /**
3849  * @brief Sets the font weight of selected index in the digital indicator.
3850  *
3851  * @param indicator The pointer to the digital indicator.
3852  * @param selectedFontWeight font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.
3853  * @since 16
3854  */
3855 void OH_ArkUI_SwiperDigitIndicator_SetSelectedFontWeight(
3856     ArkUI_SwiperDigitIndicator *indicator, ArkUI_FontWeight selectedFontWeight);
3857 
3858 /**
3859  * @brief Gets the font weight of selected index in the digital indicator.
3860  *
3861  * @param indicator The pointer to the digital indicator.
3862  * @return font weight {@link ArkUI_FontWeight}.
3863  * @since 16
3864  */
3865 ArkUI_FontWeight OH_ArkUI_SwiperDigitIndicator_GetSelectedFontWeight(ArkUI_SwiperDigitIndicator* indicator);
3866 
3867 /**
3868  * @brief Destroys the digital indicator.
3869  *
3870  * @param indicator The pointer to the digital indicator.
3871  * @since 16
3872  */
3873 void OH_ArkUI_SwiperDigitIndicator_Destroy(ArkUI_SwiperDigitIndicator *indicator);
3874 
3875 /**
3876  * @brief Sets whether to ignore the size of the indicator for {@link OH_ArkUI_SwiperDigitIndicator_SetBottomPosition}.
3877  *
3878  * @param indicator The pointer to the digital indicator.
3879  * @param ignoreSize Whether to ignore the size of the indicator. The value 1 means to ignore, and 0 means the opposite.
3880  * The default value is 0.
3881  * @since 16
3882 */
3883 void OH_ArkUI_SwiperDigitIndicator_SetIgnoreSizeOfBottom(ArkUI_SwiperDigitIndicator* indicator, int32_t ignoreSize);
3884 
3885 /**
3886  * @brief Obtains whether to ignore the size of the indicator for {@link OH_ArkUI_SwiperDigitIndicator_SetBottomPosition}.
3887  *
3888  * @param indicator The pointer to the digital indicator.
3889  * @return Returns whether to ignore the size of the indicator.
3890  * @since 16
3891 */
3892 int32_t OH_ArkUI_SwiperDigitIndicator_GetIgnoreSizeOfBottom(ArkUI_SwiperDigitIndicator* indicator);
3893 
3894 /**
3895  * @brief Creates a arrow style for swiper.
3896  *
3897  * @return Returns the pointer to the new arrow style.
3898  * @since 16
3899  */
3900 ArkUI_SwiperArrowStyle *OH_ArkUI_SwiperArrowStyle_Create();
3901 
3902 /**
3903  * @brief Sets whether to show the background for the arrow.
3904  *
3905  * @param arrowStyle The pointer to the arrow style.
3906  * @param showBackground whether to show the background for the arrow.
3907  *        The value <b>1</b> means to show the background, and <b>0</b> means the opposite.
3908  *        The default value is <b>0</b>.
3909  * @since 16
3910  */
3911 void OH_ArkUI_SwiperArrowStyle_SetShowBackground(ArkUI_SwiperArrowStyle *arrowStyle, int32_t showBackground);
3912 
3913 /**
3914  * @brief Gets whether to show the background for the arrow.
3915  *
3916  * @param arrowStyle The pointer to the arrow style.
3917  * @return whether to show the background for the arrow.
3918  *         The value <b>1</b> means to show the background, and <b>0</b> means the opposite.
3919  * @since 16
3920  */
3921 int32_t OH_ArkUI_SwiperArrowStyle_GetShowBackground(ArkUI_SwiperArrowStyle* arrowStyle);
3922 
3923 /**
3924  * @brief Sets the display position of the arrow.
3925  *
3926  * @param arrowStyle The pointer to the arrow style.
3927  * @param showSidebarMiddle the display position of the arrow.
3928  *        The value <b>1</b> means to display on boths sides of the swiper,
3929  *        and <b>0</b> means display on boths sides of the swiper indicator.
3930  *        The default value is <b>0</b>.
3931  * @since 16
3932  */
3933 void OH_ArkUI_SwiperArrowStyle_SetShowSidebarMiddle(ArkUI_SwiperArrowStyle* arrowStyle, int32_t showSidebarMiddle);
3934 
3935 /**
3936  * @brief Gets the display position of the arrow.
3937  *
3938  * @param arrowStyle The pointer to the arrow style.
3939  * @return the display position of the arrow. The value <b>1</b> means to display on boths sides of the swiper,
3940  *         and <b>0</b> means display on boths sides of the swiper indicator.
3941  * @since 16
3942  */
3943 int32_t OH_ArkUI_SwiperArrowStyle_GetShowSidebarMiddle(ArkUI_SwiperArrowStyle* arrowStyle);
3944 
3945 /**
3946  * @brief Sets the background size of the arrow.
3947  *
3948  * @param arrowStyle The pointer to the arrow style.
3949  * @param backgroundSize the background size of the arrow. The unit is vp.
3950  *        The default value is <b>24</b> when the arrow displays on both sides of the swiper indicator.
3951  *        The default value is <b>32</b> when the arrow displays on both sides of the swiper.
3952  * @since 16
3953  */
3954 void OH_ArkUI_SwiperArrowStyle_SetBackgroundSize(ArkUI_SwiperArrowStyle* arrowStyle, float backgroundSize);
3955 
3956 /**
3957  * @brief Gets the background size of the arrow.
3958  *
3959  * @param arrowStyle The pointer to the arrow style.
3960  * @return Returns the background size of the arrow. The unit is vp.
3961  * @since 16
3962  */
3963 float OH_ArkUI_SwiperArrowStyle_GetBackgroundSize(ArkUI_SwiperArrowStyle *arrowStyle);
3964 
3965 /**
3966  * @brief Destroys the arrow style.
3967  *
3968  * @param arrowStyle The pointer to the arrow style.
3969  * @since 16
3970  */
3971 void OH_ArkUI_SwiperArrowStyle_Destroy(ArkUI_SwiperArrowStyle *arrowStyle);
3972 
3973 /**
3974  * @brief Sets the background color of the arrow.
3975  *
3976  * @param arrowStyle The pointer to the arrow style.
3977  * @param backgroundColor the background color of the arrow, in 0xARGB format.
3978  *        The default value is <b>0x00000000</b> when the arrow displays on both sides of the swiper indicator.
3979  *        The default value is <b>0x19182431</b> when the arrow displays on both sides of the swiper.
3980  * @since 16
3981  */
3982 void OH_ArkUI_SwiperArrowStyle_SetBackgroundColor(ArkUI_SwiperArrowStyle *arrowStyle, uint32_t backgroundColor);
3983 
3984 /**
3985  * @brief Gets the background color of the arrow.
3986  *
3987  * @param arrowStyle The pointer to the arrow style.
3988  * @return Returns the background color of the arrow, in 0xARGB format.
3989  * @since 16
3990  */
3991 uint32_t OH_ArkUI_SwiperArrowStyle_GetBackgroundColor(ArkUI_SwiperArrowStyle* arrowStyle);
3992 
3993 /**
3994  * @brief Sets the size of the arrow.
3995  *
3996  * @param arrowStyle The pointer to the arrow style.
3997  * @param arrowSize the size of the arrow. The unit is vp.
3998  *        The default value is <b>18</b> when the arrow displays on both sides of the swiper indicator.
3999  *        The default value is <b>24</b> when the arrow displays on both sides of the swiper.
4000  *        The arrow size is fixed to 3/4 of the background size when the background is shown.
4001  * @since 16
4002  */
4003 void OH_ArkUI_SwiperArrowStyle_SetArrowSize(ArkUI_SwiperArrowStyle* arrowStyle, float arrowSize);
4004 
4005 /**
4006  * @brief Gets the size of the arrow.
4007  *
4008  * @param arrowStyle The pointer to the arrow style.
4009  * @return the size of the arrow. The unit is vp.
4010  * @since 16
4011  */
4012 float OH_ArkUI_SwiperArrowStyle_GetArrowSize(ArkUI_SwiperArrowStyle* arrowStyle);
4013 
4014 /**
4015  * @brief Sets the color of the arrow.
4016  *
4017  * @param arrowStyle The pointer to the arrow style.
4018  * @param arrowColor the color of the arrow, in 0xARGB format. The default value is <b>0x00182431</b>.
4019  * @since 16
4020  */
4021 void OH_ArkUI_SwiperArrowStyle_SetArrowColor(ArkUI_SwiperArrowStyle* arrowStyle, uint32_t arrowColor);
4022 
4023 /**
4024  * @brief Gets the color of the arrow.
4025  *
4026  * @param arrowStyle The pointer to the arrow style.
4027  * @return Returns the color of the arrow, in 0xARGB format.
4028  * @since 16
4029  */
4030 uint32_t OH_ArkUI_SwiperArrowStyle_GetArrowColor(ArkUI_SwiperArrowStyle* arrowStyle);
4031 
4032 /**
4033  * @brief Create a configuration item for the ListitemSwipeActionItem interface settings.
4034  *
4035  * @return List Item SwipeActionItem configuration item instance.
4036  * @since 12
4037 */
4038 ArkUI_ListItemSwipeActionItem* OH_ArkUI_ListItemSwipeActionItem_Create();
4039 
4040 /**
4041 * @brief Destroy the ListitemSwipeActionItem instance.
4042 *
4043 * @param item List Item SwipeActionItem instance to be destroyed.
4044 * @since 12
4045 */
4046 void OH_ArkUI_ListItemSwipeActionItem_Dispose(ArkUI_ListItemSwipeActionItem* item);
4047 
4048 /**
4049 * @brief Set the layout content of ListItem SwipeActionItem.
4050 *
4051 * @param item List Item SwipeActionItem instance.
4052 * @param node Layout information.
4053 * @since 12
4054 */
4055 void OH_ArkUI_ListItemSwipeActionItem_SetContent(ArkUI_ListItemSwipeActionItem* item, ArkUI_NodeHandle node);
4056 
4057 /**
4058 * @brief Set the threshold for long-distance sliding deletion distance of components.
4059 *
4060 * @param item List Item SwipeActionItem instance.
4061 * @param distance Component long-distance sliding deletion distance threshold.
4062 * @since 12
4063 */
4064 void OH_ArkUI_ListItemSwipeActionItem_SetActionAreaDistance(ArkUI_ListItemSwipeActionItem* item, float distance);
4065 
4066 /**
4067 * @brief Obtain the threshold for long-distance sliding deletion distance of components.
4068 *
4069 * @param item List Item SwipeActionItem instance.
4070 * @return Component long-distance sliding deletion distance threshold. Return value on exception: 0.
4071 * @since 12
4072 */
4073 float OH_ArkUI_ListItemSwipeActionItem_GetActionAreaDistance(ArkUI_ListItemSwipeActionItem* item);
4074 
4075 /**
4076 * @brief Set the event to be called when a sliding entry enters the deletion area.
4077 *
4078 * @param item List Item SwipeActionItem instance.
4079 * @param callback Callback Events.
4080 * @since 12
4081 */
4082 void OH_ArkUI_ListItemSwipeActionItem_SetOnEnterActionArea(ArkUI_ListItemSwipeActionItem* item, void (*callback)());
4083 
4084 /**
4085  * @brief Set the event triggered when a sliding entry enters the deletion area.
4086  *
4087  * @param option List Item SwipeActionItem instance.
4088  * @param userData User defined data.
4089  * @param callback Callback Events.
4090  * @since 12
4091  */
4092 void OH_ArkUI_ListItemSwipeActionItem_SetOnEnterActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* item,
4093     void* userData, void (*callback)(void* userData));
4094 
4095 /**
4096 * @brief Set the event to be called when a component enters the long-range deletion area and deletes a ListItem.
4097 *
4098 * @param item List Item SwipeActionItem instance.
4099 * @param callback Callback Events.
4100 * @since 12
4101 */
4102 void OH_ArkUI_ListItemSwipeActionItem_SetOnAction(ArkUI_ListItemSwipeActionItem* item, void (*callback)());
4103 
4104 /**
4105  * @brief Set the event triggered when a component enters the long-range deletion area and deletes a ListItem.
4106  *
4107  * @param option List Item SwipeActionItem instance.
4108  * @param userData User defined data.
4109  * @param callback Callback Events.
4110  * @since 12
4111  */
4112 void OH_ArkUI_ListItemSwipeActionItem_SetOnActionWithUserData(ArkUI_ListItemSwipeActionItem* item,
4113     void* userData, void (*callback)(void* userData));
4114 
4115 /**
4116 * @brief Set the event to be called when a sliding entry exits the deletion area.
4117 *
4118 * @param item List Item SwipeActionItem instance.
4119 * @param callback Callback Events.
4120 * @since 12
4121 */
4122 void OH_ArkUI_ListItemSwipeActionItem_SetOnExitActionArea(ArkUI_ListItemSwipeActionItem* item, void (*callback)());
4123 
4124 /**
4125  * @brief Set the event triggered when a sliding entry exits the deletion area.
4126  *
4127  * @param option List Item SwipeActionItem instance.
4128  * @param userData User defined data.
4129  * @param callback Callback Events.
4130  * @since 12
4131  */
4132 void OH_ArkUI_ListItemSwipeActionItem_SetOnExitActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* item,
4133     void* userData, void (*callback)(void* userData));
4134 
4135 /**
4136 * @brief Set the event triggered when the sliding state of a list item changes.
4137 *
4138 * @param item List Item SwipeActionItem instance.
4139 * @param callback Callback Events.
4140 *        swipeActionState The changed state.
4141 * @since 12
4142 */
4143 void OH_ArkUI_ListItemSwipeActionItem_SetOnStateChange(
4144     ArkUI_ListItemSwipeActionItem* item, void (*callback)(ArkUI_ListItemSwipeActionState swipeActionState));
4145 
4146 /**
4147  * @brief Set the event triggered when the sliding state of a list item changes.
4148  *
4149  * @param option List Item SwipeActionItem instance.
4150  * @param userData User defined data.
4151  * @param callback Callback Events.
4152  *        swipeActionState The changed state.
4153  * @since 12
4154  */
4155 void OH_ArkUI_ListItemSwipeActionItem_SetOnStateChangeWithUserData(ArkUI_ListItemSwipeActionItem* item,
4156     void* userData, void (*callback)(ArkUI_ListItemSwipeActionState swipeActionState, void* userData));
4157 
4158 /**
4159  * @brief Create a configuration item for the ListitemSwipeActionOption interface settings.
4160  *
4161  * @return List Item SwipeActionOption configuration item instance.
4162  * @since 12
4163 */
4164 ArkUI_ListItemSwipeActionOption* OH_ArkUI_ListItemSwipeActionOption_Create();
4165 
4166 /**
4167 * @brief Destroy the ListitemSwipeActionOption instance.
4168 *
4169 * @param option List Item SwipeActionOption instance to be destroyed.
4170 * @since 12
4171 */
4172 void OH_ArkUI_ListItemSwipeActionOption_Dispose(ArkUI_ListItemSwipeActionOption* option);
4173 
4174 /**
4175 * @brief Set the layout content on the left (vertical layout) or top (horizontal layout)
4176 * of the ListItem SwipeActionItem.
4177 *
4178 * @param option List Item SwipeActionItem instance.
4179 * @param builder Layout information.
4180 * @since 12
4181 */
4182 void OH_ArkUI_ListItemSwipeActionOption_SetStart(
4183     ArkUI_ListItemSwipeActionOption* option, ArkUI_ListItemSwipeActionItem* item);
4184 
4185 /**
4186 * @brief Set the layout content on the right (vertical layout) or bottom (horizontal layout)
4187 * of the ListItem SwipeActionItem.
4188 *
4189 * @param option List Item SwipeActionItem instance.
4190 * @param builder Layout information.
4191 * @since 12
4192 */
4193 void OH_ArkUI_ListItemSwipeActionOption_SetEnd(
4194     ArkUI_ListItemSwipeActionOption* option, ArkUI_ListItemSwipeActionItem* item);
4195 
4196 /**
4197 * @brief Set the sliding effect.
4198 *
4199 * @param option List Item SwipeActionItem instance.
4200 * @param edgeEffect Sliding effect.
4201 * @since 12
4202 */
4203 void OH_ArkUI_ListItemSwipeActionOption_SetEdgeEffect(
4204     ArkUI_ListItemSwipeActionOption* option, ArkUI_ListItemSwipeEdgeEffect edgeEffect);
4205 
4206 /**
4207 * @brief Get the sliding effect.
4208 *
4209 * @param option List Item SwipeActionItem instance.
4210 * @return Sliding effect. The default return value is ARKUI-LIST-ITEM-SWIPE-EDGE-EFFECT SPRING.
4211 * @since 12
4212 */
4213 int32_t OH_ArkUI_ListItemSwipeActionOption_GetEdgeEffect(ArkUI_ListItemSwipeActionOption* option);
4214 
4215 /**
4216 * @brief The event called when the sliding operation offset changes.
4217 *
4218 * @param option List Item SwipeActionItem instance.
4219 * @param callback Callback Events.
4220 *        offset Slide offset.
4221 * @since 12
4222 */
4223 void OH_ArkUI_ListItemSwipeActionOption_SetOnOffsetChange(
4224     ArkUI_ListItemSwipeActionOption* option, void (*callback)(float offset));
4225 
4226 /**
4227  * @brief Set the event triggered when the sliding operation offset changes.
4228  *
4229  * @param option List Item SwipeActionItem instance.
4230  * @param userData User defined data.
4231  * @param callback Callback Events.
4232  *        offset Slide offset.
4233  * @since 12
4234  */
4235 void OH_ArkUI_ListItemSwipeActionOption_SetOnOffsetChangeWithUserData(ArkUI_ListItemSwipeActionOption* option,
4236     void* userData, void (*callback)(float offset, void* userData));
4237 
4238 /**
4239  * @brief 使用图片路径创建帧图片信息,图片格式为svg,png和jpg。
4240  *
4241  * @param src 图片路径。
4242  * @return 帧图片对象指针。
4243  * @since 12
4244 */
4245 ArkUI_ImageAnimatorFrameInfo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromString(char* src);
4246 
4247 /**
4248  * @brief 使用 DrawableDescriptor 对象创建帧图片信息,图片格式为Resource和PixelMap。
4249  *
4250  * @param drawable 使用Resource或PixelMap创建的ArkUI_DrawableDescriptor对象指针。
4251  * @return 帧图片对象指针。
4252  * @since 12
4253 */
4254 ArkUI_ImageAnimatorFrameInfo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromDrawableDescriptor(
4255     ArkUI_DrawableDescriptor* drawable);
4256 
4257 /**
4258  * @brief 销毁帧图片对象指针。
4259  *
4260  * @param imageInfo 帧图片对象指针。
4261  * @since 12
4262 */
4263 void OH_ArkUI_ImageAnimatorFrameInfo_Dispose(ArkUI_ImageAnimatorFrameInfo* imageInfo);
4264 
4265 /**
4266  * @brief 设置图片宽度。
4267  *
4268  * @param imageInfo 帧图片对象指针。
4269  * @param width 图片宽度,单位为PX。
4270  * @since 12
4271 */
4272 void OH_ArkUI_ImageAnimatorFrameInfo_SetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t width);
4273 
4274 /**
4275  * @brief 获取图片宽度。
4276  *
4277  * @param imageInfo 帧图片对象指针。
4278  * @return 图片宽度,单位为PX,imageInfo为空指针时返回0。
4279  * @since 12
4280 */
4281 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfo);
4282 
4283 /**
4284  * @brief 设置图片高度。
4285  *
4286  * @param imageInfo 帧图片对象指针。
4287  * @param height 图片高度,单位为PX。
4288  * @since 12
4289 */
4290 void OH_ArkUI_ImageAnimatorFrameInfo_SetHeight(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t height);
4291 
4292 /**
4293  * @brief 获取图片高度。
4294  *
4295  * @param imageInfo 帧图片对象指针。
4296  * @return 图片高度,单位为PX,imageInfo为空指针时返回0。
4297  * @since 12
4298 */
4299 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetHeight(ArkUI_ImageAnimatorFrameInfo* imageInfo);
4300 
4301 /**
4302  * @brief 设置图片相对于组件左上角的纵向坐标。
4303  *
4304  * @param imageInfo 帧图片对象指针。
4305  * @param top 图片相对于组件左上角的纵向坐标,单位为PX。
4306  * @since 12
4307 */
4308 void OH_ArkUI_ImageAnimatorFrameInfo_SetTop(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t top);
4309 
4310 /**
4311  * @brief 获取图片相对于组件左上角的纵向坐标。
4312  *
4313  * @param imageInfo 帧图片对象指针。
4314  * @return 图片相对于组件左上角的纵向坐标,单位为PX,imageInfo为空指针时返回0。
4315  * @since 12
4316 */
4317 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetTop(ArkUI_ImageAnimatorFrameInfo* imageInfo);
4318 
4319 /**
4320  * @brief 设置图片相对于组件左上角的横向坐标。
4321  *
4322  * @param imageInfo 帧图片对象指针。
4323  * @param left 图片相对于组件左上角的横向坐标,单位为PX。
4324  * @since 12
4325 */
4326 void OH_ArkUI_ImageAnimatorFrameInfo_SetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t left);
4327 
4328 /**
4329  * @brief 获取图片相对于组件左上角的横向坐标。
4330  *
4331  * @param imageInfo 帧图片对象指针。
4332  * @return 图片相对于组件左上角的横向坐标,单位为PX,imageInfo为空指针时返回0。
4333  * @since 12
4334 */
4335 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfo);
4336 
4337 /**
4338  * @brief 设置图片的播放时长。
4339  *
4340  * @param imageInfo 帧图片对象指针。
4341  * @param duration 图片的播放时长,单位为毫秒。
4342  * @since 12
4343 */
4344 void OH_ArkUI_ImageAnimatorFrameInfo_SetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t duration);
4345 
4346 /**
4347  * @brief 获取图片的播放时长。
4348  *
4349  * @param imageInfo 帧图片对象指针。
4350  * @return 图片的播放时长,单位为毫秒,imageInfo为空指针时返回0。
4351  * @since 12
4352 */
4353 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo);
4354 
4355 /**
4356  * @brief Create accessibility state.
4357  *
4358  * @return accessibility state object. If the object returns a null pointer,
4359  *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
4360  * @since 12
4361 */
4362 ArkUI_AccessibilityState* OH_ArkUI_AccessibilityState_Create();
4363 
4364 /**
4365 * @brief Dispose accessibility state.
4366 *
4367 * @param state accessibility state object.
4368 * @since 12
4369 */
4370 void OH_ArkUI_AccessibilityState_Dispose(ArkUI_AccessibilityState* state);
4371 
4372 /**
4373  * @brief Set accessibility state disabled.
4374  *
4375  * @param state accessibility state object.
4376  * @param isDisabled accessibility state disabled, Value 1 indicates disabled and 0 indicates enbled.
4377  * @since 12
4378 */
4379 void OH_ArkUI_AccessibilityState_SetDisabled(ArkUI_AccessibilityState* state, int32_t isDisabled);
4380 
4381 /**
4382  * @brief Get accessibility state disabled.
4383  *
4384  * @param state accessibility state object.
4385  * @return accessibility state disabled, Value 1 indicates disabled and 0 indicates enbled. The default value is 0.
4386  *         If the function parameter is abnormal, return the default value.
4387  * @since 12
4388 */
4389 int32_t OH_ArkUI_AccessibilityState_IsDisabled(ArkUI_AccessibilityState* state);
4390 
4391 /**
4392  * @brief Set accessibility state selected.
4393  *
4394  * @param state accessibility state object.
4395  * @param isSelected accessibility state selected, Value 1 indicates selected, and 0 indicates not selected.
4396  *        The default value is 0.
4397  * @since 12
4398 */
4399 void OH_ArkUI_AccessibilityState_SetSelected(ArkUI_AccessibilityState* state, int32_t isSelected);
4400 
4401 /**
4402  * @brief Get accessibility state selected.
4403  *
4404  * @param state accessibility state object.
4405  * @return accessibility state selected, Value 1 indicates selected, and 0 indicates not selected.
4406  *         The default value is 0.
4407  *         If the function parameter is abnormal, return the default value.
4408  * @since 12
4409 */
4410 int32_t OH_ArkUI_AccessibilityState_IsSelected(ArkUI_AccessibilityState* state);
4411 
4412 /**
4413  * @brief Set accessibility checked state.
4414  *
4415  * @param state accessibility state object.
4416  * @param checkedState checked state,and uses the {@link ArkUI_AccessibilityCheckedState} enumeration value,
4417  *        The default value is ARKUI_ACCESSIBILITY_UNCHECKED.
4418  * @since 12
4419 */
4420 void OH_ArkUI_AccessibilityState_SetCheckedState(ArkUI_AccessibilityState* state, int32_t checkedState);
4421 
4422 /**
4423  * @brief Get accessibility checked state.
4424  *
4425  * @param state accessibility state object.
4426  * @return checked state,and uses the {@link ArkUI_AccessibilityCheckedState} enumeration value,
4427  *         The default value is ARKUI_ACCESSIBILITY_UNCHECKED.
4428  *         If the function parameter is abnormal, return the default value.
4429  * @since 12
4430 */
4431 int32_t OH_ArkUI_AccessibilityState_GetCheckedState(ArkUI_AccessibilityState* state);
4432 
4433 /**
4434  * @brief Create accessibility value.
4435  *
4436  * @return accessibility value object. If the object returns a null pointer,
4437  *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
4438  * @since 12
4439 */
4440 ArkUI_AccessibilityValue* OH_ArkUI_AccessibilityValue_Create();
4441 
4442 /**
4443 * @brief Dispose accessibility value.
4444 *
4445 * @param state accessibility value object.
4446 * @since 12
4447 */
4448 void OH_ArkUI_AccessibilityValue_Dispose(ArkUI_AccessibilityValue* value);
4449 
4450 /**
4451  * @brief Set accessibility minimum value.
4452  *
4453  * @param value accessibility value object.
4454  * @param min minimum value based on range components, The default value is -1。
4455  * @since 12
4456 */
4457 void OH_ArkUI_AccessibilityValue_SetMin(ArkUI_AccessibilityValue* value, int32_t min);
4458 
4459 /**
4460  * @brief Get accessibility minimum value.
4461  *
4462  * @param value accessibility value object.
4463  * @return minimum value based on range components, The default value is -1。
4464  *         If the function parameter is abnormal, return -1.
4465  * @since 12
4466 */
4467 int32_t OH_ArkUI_AccessibilityValue_GetMin(ArkUI_AccessibilityValue* value);
4468 
4469 /**
4470  * @brief Set accessibility minimum value.
4471  *
4472  * @param value accessibility value object.
4473  * @param max maximum value based on range components, The default value is -1。
4474  * @since 12
4475 */
4476 void OH_ArkUI_AccessibilityValue_SetMax(ArkUI_AccessibilityValue* value, int32_t max);
4477 
4478 /**
4479  * @brief Get accessibility minimum value.
4480  *
4481  * @param value accessibility value object.
4482  * @return maximum value based on range components, The default value is -1。
4483  *         If the function parameter is abnormal, return -1.
4484  * @since 12
4485 */
4486 int32_t OH_ArkUI_AccessibilityValue_GetMax(ArkUI_AccessibilityValue* value);
4487 
4488 /**
4489  * @brief Set accessibility current value.
4490  *
4491  * @param value accessibility value object.
4492  * @param current value based on range components, The default value is -1。
4493  * @since 12
4494 */
4495 void OH_ArkUI_AccessibilityValue_SetCurrent(ArkUI_AccessibilityValue* value, int32_t current);
4496 
4497 /**
4498  * @brief Get accessibility current value.
4499  *
4500  * @param value accessibility value object.
4501  * @return current value based on range components, The default value is -1。
4502  *         If the function parameter is abnormal, return -1.
4503  * @since 12
4504 */
4505 int32_t OH_ArkUI_AccessibilityValue_GetCurrent(ArkUI_AccessibilityValue* value);
4506 
4507 /**
4508  * @brief Set accessibility minimum value.
4509  *
4510  * @param value accessibility value object.
4511  * @param rangeMin minimum value based on range components, The default value is -1。
4512  * @since 16
4513 */
4514 void OH_ArkUI_AccessibilityValue_SetRangeMin(ArkUI_AccessibilityValue* value, int32_t rangeMin);
4515 
4516 /**
4517  * @brief Get accessibility minimum value.
4518  *
4519  * @param value accessibility value object.
4520  * @return minimum value based on range components, The default value is -1。
4521  *         If the function parameter is abnormal, return -1.
4522  * @since 16
4523 */
4524 int32_t OH_ArkUI_AccessibilityValue_GetRangeMin(ArkUI_AccessibilityValue* value);
4525 
4526 /**
4527  * @brief Set accessibility maximum value.
4528  *
4529  * @param value accessibility value object.
4530  * @param rangeMax maximum value based on range components, The default value is -1。
4531  * @since 16
4532 */
4533 void OH_ArkUI_AccessibilityValue_SetRangeMax(ArkUI_AccessibilityValue* value, int32_t rangeMax);
4534 
4535 /**
4536  * @brief Get accessibility maximum value.
4537  *
4538  * @param value accessibility value object.
4539  * @return maximum value based on range components, The default value is -1。
4540  *         If the function parameter is abnormal, return -1.
4541  * @since 16
4542 */
4543 int32_t OH_ArkUI_AccessibilityValue_GetRangeMax(ArkUI_AccessibilityValue* value);
4544 
4545 /**
4546  * @brief Set accessibility current value.
4547  *
4548  * @param value accessibility value object.
4549  * @param rangeCurrent value based on range components, The default value is -1。
4550  * @since 16
4551 */
4552 void OH_ArkUI_AccessibilityValue_SetRangeCurrent(ArkUI_AccessibilityValue* value, int32_t rangeCurrent);
4553 
4554 /**
4555  * @brief Get accessibility current value.
4556  *
4557  * @param value accessibility value object.
4558  * @return current value based on range components, The default value is -1。
4559  *         If the function parameter is abnormal, return -1.
4560  * @since 16
4561 */
4562 int32_t OH_ArkUI_AccessibilityValue_GetRangeCurrent(ArkUI_AccessibilityValue* value);
4563 
4564 /**
4565  * @brief Set accessibility text value.
4566  *
4567  * @param value accessibility value object.
4568  * @param text The textual description information of the component, which defaults to an empty string。
4569  * @since 12
4570 */
4571 void OH_ArkUI_AccessibilityValue_SetText(ArkUI_AccessibilityValue* value, const char* text);
4572 
4573 /**
4574  * @brief Get accessibility text value。
4575  *
4576  * @param value accessibility value object.
4577  * @return The textual description information of the component, which defaults to an empty string;
4578  *         If the function parameter is abnormal, return null.
4579  * @since 12
4580 */
4581 const char* OH_ArkUI_AccessibilityValue_GetText(ArkUI_AccessibilityValue* value);
4582 /**
4583  * @brief Create configuration items for the ListChildrenMainSize interface settings.
4584  *
4585  * @return ListChildrenMainSize configuration item instance.If the object returns a null pointer,
4586  *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
4587  * @since 12
4588 */
4589 ArkUI_ListChildrenMainSize* OH_ArkUI_ListChildrenMainSizeOption_Create();
4590 
4591 /**
4592 * @brief Destroy the ListChildrenMainSize instance.
4593 *
4594 * @param option The ListChildrenMainSize instance to be destroyed.
4595 * @since 12
4596 */
4597 void OH_ArkUI_ListChildrenMainSizeOption_Dispose(ArkUI_ListChildrenMainSize* option);
4598 
4599 /**
4600  * @brief Set the default size of ChildrenMainSizeOption for the List component.
4601  *
4602  * @param option ListChildrenMainSize instance.
4603  * @param defaultMainSize The default size of the ListItem under the List, measured in vp.
4604  * @return Error code.
4605  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
4606  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
4607  * @since 12
4608 */
4609 int32_t OH_ArkUI_ListChildrenMainSizeOption_SetDefaultMainSize(ArkUI_ListChildrenMainSize* option,
4610     float defaultMainSize);
4611 
4612 /**
4613  * @brief Get the default size of ChildrenMainSizeOption for the List component.
4614  *
4615  * @param option ListChildrenMainSize instance.
4616  * @return The default size of the ListItem under the List is 0, measured in vp.
4617  *         When the option is a null pointer, it returns -1.
4618  * @since 12
4619 */
4620 float OH_ArkUI_ListChildrenMainSizeOption_GetDefaultMainSize(ArkUI_ListChildrenMainSize* option);
4621 
4622 /**
4623  * @brief Reset the array size of ChildrenMainSizeOption for the List component.
4624  *
4625  * @param option ListChildrenMainSize instance.
4626  * @param totalSize Array size.
4627  * @since 12
4628 */
4629 void OH_ArkUI_ListChildrenMainSizeOption_Resize(ArkUI_ListChildrenMainSize* option, int32_t totalSize);
4630 
4631 /**
4632  * @brief Resize the ChildrenMainSizeOption array operation on the List component.
4633  *
4634  * @param option ListChildrenMainSize instance.
4635  * @param index To modify the starting position of the MainSize array.
4636  * @param deleteCount The number of MainSize arrays to be deleted starting from index.
4637  * @param addCount The number of MainSize arrays to be added starting from index.
4638  * @return Error code.
4639  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
4640  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
4641  * @since 12
4642 */
4643 int32_t OH_ArkUI_ListChildrenMainSizeOption_Splice(ArkUI_ListChildrenMainSize* option, int32_t index,
4644     int32_t deleteCount, int32_t addCount);
4645 
4646 /**
4647  * @brief Update the value of the ChildrenMainSizeOption array in the List component.
4648  *
4649  * @param option ListChildrenMainSize instance.
4650  * @param index To modify the starting position of the MainSize array.
4651  * @param mainSize The actual modified value.
4652  * @return Error code.
4653  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
4654  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
4655  * @since 12
4656 */
4657 int32_t OH_ArkUI_ListChildrenMainSizeOption_UpdateSize(ArkUI_ListChildrenMainSize* option,
4658     int32_t index, float mainSize);
4659 
4660 /**
4661  * @brief Get the value of the ChildrenMainSizeOption array for the List component.
4662  *
4663  * @param option ListChildrenMainSize instance.
4664  * @param index The index position of the value to be obtained.
4665  * @return The value of the specific position of the array. If the function parameter is abnormal, return -1.
4666  * @since 12
4667 */
4668 float OH_ArkUI_ListChildrenMainSizeOption_GetMainSize(ArkUI_ListChildrenMainSize* option, int32_t index);
4669 
4670 /**
4671  * @brief 创建自定义段落组件测量信息。
4672  *
4673  * @return CustomSpanMeasureInfo实例。
4674  * @since 12
4675 */
4676 ArkUI_CustomSpanMeasureInfo* OH_ArkUI_CustomSpanMeasureInfo_Create(void);
4677 
4678 /**
4679  * @brief 销毁自定义段落组件测量信息。
4680  *
4681  * @since 12
4682 */
4683 void OH_ArkUI_CustomSpanMeasureInfo_Dispose(ArkUI_CustomSpanMeasureInfo* info);
4684 
4685 /**
4686  * @brief 获取自定义段落组件的字体大小。
4687  *
4688  * @param info  自定义段落组件测量信息指针。
4689  * @return 字体大小。若函数参数异常,返回-1.0f。
4690  * @since 12
4691 */
4692 float OH_ArkUI_CustomSpanMeasureInfo_GetFontSize(ArkUI_CustomSpanMeasureInfo* info);
4693 
4694 /**
4695  * @brief 创建自定义段落组件度量信息。
4696  *
4697  * @return CustomSpanMetrics实例。
4698  * @since 12
4699 */
4700 ArkUI_CustomSpanMetrics* OH_ArkUI_CustomSpanMetrics_Create(void);
4701 
4702 /**
4703  * @brief 销毁自定义段落组件度量信息。
4704  *
4705  * @since 12
4706 */
4707 void OH_ArkUI_CustomSpanMetrics_Dispose(ArkUI_CustomSpanMetrics* metrics);
4708 
4709 /**
4710  * @brief 设置自定义段落组件的宽度。
4711  *
4712  * @param metrics CustomSpanMetrics实例。
4713  * @param width 宽度大小,单位为px。
4714  * @return 错误码。
4715  *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
4716  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} 函数参数异常。
4717  * @since 12
4718 */
4719 int32_t OH_ArkUI_CustomSpanMetrics_SetWidth(ArkUI_CustomSpanMetrics* metrics, float width);
4720 
4721 /**
4722  * @brief 设置自定义段落组件的高度。
4723  *
4724  * @param metrics CustomSpanMetrics实例。
4725  * @param height 高度大小,单位为px。
4726  * @return 错误码。
4727  *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
4728  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} 函数参数异常。
4729  * @since 12
4730 */
4731 int32_t OH_ArkUI_CustomSpanMetrics_SetHeight(ArkUI_CustomSpanMetrics* metrics, float height);
4732 
4733 /**
4734  * @brief 创建自定义段落组件绘制信息。
4735  *
4736  * @return CustomSpanDrawInfo实例。
4737  * @since 12
4738 */
4739 ArkUI_CustomSpanDrawInfo* OH_ArkUI_CustomSpanDrawInfo_Create(void);
4740 
4741 /**
4742  * @brief 销毁自定义段落组件绘制信息。
4743  *
4744  * @since 12
4745 */
4746 void OH_ArkUI_CustomSpanDrawInfo_Dispose(ArkUI_CustomSpanDrawInfo* info);
4747 
4748 /**
4749  * @brief 获取自定义段落组件相对于挂载组件的x轴偏移值。
4750  *
4751  * @param info  自定义段落组件绘制信息指针。
4752  * @return x轴偏移值。若函数参数异常,返回0.0f。
4753  * @since 12
4754 */
4755 float OH_ArkUI_CustomSpanDrawInfo_GetXOffset(ArkUI_CustomSpanDrawInfo* info);
4756 
4757 /**
4758  * @brief 获取自定义段落组件相对于挂载组件的上边距。
4759  *
4760  * @param info  自定义段落组件绘制信息指针。
4761  * @return 上边距值。若函数参数异常,返回0.0f。
4762  * @since 12
4763 */
4764 float OH_ArkUI_CustomSpanDrawInfo_GetLineTop(ArkUI_CustomSpanDrawInfo* info);
4765 
4766 /**
4767  * @brief 获取自定义段落组件相对于挂载组件的下边距。
4768  *
4769  * @param info  自定义段落组件绘制信息指针。
4770  * @return 下边距值。若函数参数异常,返回0.0f。
4771  * @since 12
4772 */
4773 float OH_ArkUI_CustomSpanDrawInfo_GetLineBottom(ArkUI_CustomSpanDrawInfo* info);
4774 
4775 /**
4776  * @brief 获取自定义段落组件相对于挂载组件的基线偏移量。
4777  *
4778  * @param info  自定义段落组件绘制信息指针。
4779  * @return 基线偏移量值。若函数参数异常,返回0.0f。
4780  * @since 12
4781 */
4782 float OH_ArkUI_CustomSpanDrawInfo_GetBaseline(ArkUI_CustomSpanDrawInfo* info);
4783 
4784 /**
4785  * @brief Destroy the instance of Customs Property.
4786  *
4787  * @param handle The instance of Customs Property to be destroyed.
4788  * @since 14
4789  */
4790 void OH_ArkUI_CustomProperty_Destroy(ArkUI_CustomProperty* handle);
4791 
4792 /**
4793  * @brief Get custom attribute value information.
4794  *
4795  * @param handle Custom attribute object pointer.
4796  * @return Customize the value information within the attribute structure.
4797  * @since 14
4798  */
4799 const char* OH_ArkUI_CustomProperty_GetStringValue(ArkUI_CustomProperty* handle);
4800 
4801 /**
4802  * @brief Get window name from HostWindowInfo.
4803  *
4804  * @param info HostWindowInfo object pointer.
4805  * @return Window name in HostWindowInfo.
4806  * @since 15
4807  */
4808 const char* OH_ArkUI_HostWindowInfo_GetName(ArkUI_HostWindowInfo* info);
4809 
4810 /**
4811  * @brief Destroy the instance of HostWindowInfo.
4812  *
4813  * @param info Instance of HostWindowInfo to be destroyed.
4814  * @since 15
4815  */
4816 void OH_ArkUI_HostWindowInfo_Destroy(ArkUI_HostWindowInfo* info);
4817 
4818 /**
4819  * @brief Destroy ActiveChildenInfo instance.
4820  *
4821  * @param handle ActiveChild instance to be destroyed.
4822  * @since 14
4823  */
4824 void OH_ArkUI_ActiveChildrenInfo_Destroy(ArkUI_ActiveChildrenInfo* handle);
4825 
4826 /**
4827  * @brief Retrieve the child nodes of ActiveChildenInfo with the structure index.
4828  *
4829  * @param handle The ActiveChildenInfo instance for obtaining information.
4830  * @param index The index of child nodes.
4831  * @return The child node pointer corresponding to the index. Return nullptr in case of exception
4832  * @since 14
4833  */
4834 ArkUI_NodeHandle OH_ArkUI_ActiveChildrenInfo_GetNodeByIndex(ArkUI_ActiveChildrenInfo* handle, int32_t index);
4835 
4836 /**
4837  * @brief Retrieve the number of nodes within the structure of ActiveChildenInfo.
4838  *
4839  * @param handle The ActiveChildenInfo instance for obtaining information.
4840  * @return Number of child nodes. Default value:0.
4841  * @since 14
4842  */
4843 int32_t OH_ArkUI_ActiveChildrenInfo_GetCount(ArkUI_ActiveChildrenInfo* handle);
4844 
4845 /**
4846  * @brief Create linear progress indicator style information.
4847  *
4848  * @return Returns a <b>ProgressLinearStyleOption</b> instance.
4849  * <br> If the result returns nullptr, there may be out of memory.
4850  * @since 15
4851  */
4852 ArkUI_ProgressLinearStyleOption* OH_ArkUI_ProgressLinearStyleOption_Create(void);
4853 
4854 /**
4855  * @brief Destroy linear progress indicator style information.
4856  *
4857  * @param option Linear progress indicator style information.
4858  * @since 15
4859  */
4860 void OH_ArkUI_ProgressLinearStyleOption_Destroy(ArkUI_ProgressLinearStyleOption* option);
4861 
4862 /**
4863  * @brief Set whether the scan effect is enabled.
4864  *
4865  * @param option Linear progress indicator style information.
4866  * @param enabled Whether to enable the scan effect. Default value: false.
4867  * @since 15
4868  */
4869 void OH_ArkUI_ProgressLinearStyleOption_SetScanEffectEnabled(ArkUI_ProgressLinearStyleOption* option, bool enabled);
4870 
4871 /**
4872  * @brief Set whether smoothing effect is enabled.
4873  *
4874  * @param option Linear progress indicator style information.
4875  * @param enabled Whether to enable the smooth effect. When this effect is enabled, the progress change to
4876  * the set value takes place gradually. Otherwise, it takes place immediately. Default value: true.
4877  * @since 15
4878  */
4879 void OH_ArkUI_ProgressLinearStyleOption_SetSmoothEffectEnabled(ArkUI_ProgressLinearStyleOption* option, bool enabled);
4880 
4881 /**
4882  * @brief Set linear progress indicator stroke width.
4883  *
4884  * @param option Linear progress indicator style information.
4885  * @param strokeWidth Stroke width of the progress indicator. It cannot be set in percentage.
4886  * Default value: 4.0vp.
4887  * @since 15
4888  */
4889 void OH_ArkUI_ProgressLinearStyleOption_SetStrokeWidth(ArkUI_ProgressLinearStyleOption* option, float strokeWidth);
4890 
4891 /**
4892  * @brief Set linear progress indicator stroke radius.
4893  *
4894  * @param option Linear progress indicator style information.
4895  * @param strokeRadius Rounded corner radius of the progress indicator. Value range: [0, strokeWidth/2].
4896  * Default value: strokeWidth/2.
4897  * @since 15
4898  */
4899 void OH_ArkUI_ProgressLinearStyleOption_SetStrokeRadius(ArkUI_ProgressLinearStyleOption* option, float strokeRadius);
4900 
4901 /**
4902  * @brief Get whether scan effect is enable.
4903  *
4904  * @param option Linear progress indicator style information.
4905  * @return Whether to enable the scan effect.
4906  * @since 15
4907  */
4908 bool OH_ArkUI_ProgressLinearStyleOption_GetScanEffectEnabled(ArkUI_ProgressLinearStyleOption* option);
4909 
4910 /**
4911  * @brief Get whether smoothing effect is enabled.
4912  *
4913  * @param option Linear progress indicator style information.
4914  * @return Whether to enable the smooth effect.
4915  * @since 15
4916  */
4917 bool OH_ArkUI_ProgressLinearStyleOption_GetSmoothEffectEnabled(ArkUI_ProgressLinearStyleOption* option);
4918 
4919 /**
4920  * @brief Get linear progress indicator stroke width.
4921  *
4922  * @param option Linear progress indicator style information.
4923  * @return Stroke width of the progress indicator.
4924  * @since 15
4925  */
4926 float OH_ArkUI_ProgressLinearStyleOption_GetStrokeWidth(ArkUI_ProgressLinearStyleOption* option);
4927 
4928 /**
4929  * @brief Get linear progress indicator stroke radius.
4930  *
4931  * @param option Linear progress indicator style information.
4932  * @return Rounded corner radius of the progress indicator.
4933  * @since 15
4934  */
4935 float OH_ArkUI_ProgressLinearStyleOption_GetStrokeRadius(ArkUI_ProgressLinearStyleOption* option);
4936 
4937 /**
4938  * @brief Creates an option for taking snapshot, the returned value must be released through
4939  *        {@link OH_ArkUI_DestroySnapshotOptions} when it's not used anymore.
4940  *
4941  * @return Returns the pointer to the created snapshot options object.If the object returns a null pointer,
4942  *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
4943  * @since 15
4944  */
4945 ArkUI_SnapshotOptions* OH_ArkUI_CreateSnapshotOptions();
4946 
4947 /**
4948  * @brief Dispose a snapshot option object.
4949  *
4950  * @param snapshotOptions Indicates the pointer to the snapshot option.
4951  * @since 15
4952  */
4953 void OH_ArkUI_DestroySnapshotOptions(ArkUI_SnapshotOptions* snapshotOptions);
4954 
4955 /**
4956  * @brief Config the snapshot option with scale.
4957  *
4958  * @param snapshotOptions Indicates the pointer to the snapshot option.
4959  * @param scale Indicates the scale property to take the snapshot.
4960  * @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
4961  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
4962  * @since 15
4963  */
4964 int32_t OH_ArkUI_SnapshotOptions_SetScale(ArkUI_SnapshotOptions* snapshotOptions, float scale);
4965 
4966 /**
4967  * @brief Create a cross-language option instance.
4968  *
4969  * @return Returns a cross-language option instance. If the result is a null pointer, it may be out of memory.
4970  * @since 15
4971  */
4972 ArkUI_CrossLanguageOption* OH_ArkUI_CrossLanguageOption_Create(void);
4973 
4974 /**
4975  * @brief Destroy the cross-language option instance.
4976  *
4977  * @param option The cross-language option instance.
4978  * @since 15
4979  */
4980 void OH_ArkUI_CrossLanguageOption_Destroy(ArkUI_CrossLanguageOption* option);
4981 
4982 /**
4983  * @brief Enable the attribute setting in the cross-language option.
4984  *
4985  * @param option The cross-language option.
4986  * @param enable The attribute setting in the cross-language option.
4987  * Default value: false.
4988  * @since 15
4989  */
4990 void OH_ArkUI_CrossLanguageOption_SetAttributeSettingStatus(ArkUI_CrossLanguageOption* option, bool enable);
4991 
4992 /**
4993  * @brief Get the attribute setting enable of the cross-language option.
4994  *
4995  * @param option The cross-language option.
4996  * @return The attribute setting enable of the cross-language option.
4997  * @since 15
4998  */
4999 bool OH_ArkUI_CrossLanguageOption_GetAttributeSettingStatus(ArkUI_CrossLanguageOption* option);
5000 
5001 /**
5002  * @brief Defines the parameters for visible area change events.
5003  *
5004  * @since 17
5005  */
5006 typedef struct ArkUI_VisibleAreaEventOptions ArkUI_VisibleAreaEventOptions;
5007 
5008 /**
5009 * @brief Creates an instance of visible area change event parameters
5010 *
5011 * @return Returns the created instance of visible area change event parameters.
5012 * @since 17
5013 */
5014 ArkUI_VisibleAreaEventOptions* OH_ArkUI_VisibleAreaEventOptions_Create();
5015 
5016 /**
5017 * @brief Disposes of an instance of visible area change event parameters.
5018 *
5019 * @param option Instance to be destroyed.
5020 * @since 17
5021 */
5022 void OH_ArkUI_VisibleAreaEventOptions_Dispose(ArkUI_VisibleAreaEventOptions* option);
5023 
5024 /**
5025 * @brief Sets the threshold ratios for visible area changes.
5026 *
5027 * @param option Instance of visible area change event parameters.
5028 * @param value Array of threshold ratios. Each element represents the ratio of the visible area of a component to
5029 * its total area. The visible area is calculated within the parent component's bounds; any area outside the parent
5030 * component is not considered. Each value must be within the [0.0, 1.0] range.
5031 * Values outside this range will be handled as 0.0 or 1.0.
5032 * @param size Size of the threshold array.
5033 * @return Returns the result code.
5034 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
5035 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
5036 *         If an error code is returned, it may be due to a failure in parameter validation;
5037 *         the parameter must not be null.
5038 * @since 17
5039 */
5040 int32_t OH_ArkUI_VisibleAreaEventOptions_SetRatios(ArkUI_VisibleAreaEventOptions* option, float* value, int32_t size);
5041 
5042 /**
5043 * @brief Sets the expected update interval for visible area changes.
5044 *
5045 * @param option Instance of visible area change event parameters.
5046 * @param value Expected update interval, in ms.  Default value: <b>1000</b>.
5047 * @return Returns the result code.
5048 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
5049 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
5050 *         If an error code is returned, it may be due to a failure in parameter validation;
5051 *         the parameter must not be null.
5052 * @since 17
5053 */
5054 int32_t OH_ArkUI_VisibleAreaEventOptions_SetExpectedUpdateInterval(
5055     ArkUI_VisibleAreaEventOptions *option, int32_t value);
5056 
5057 /**
5058  * @brief Obtains the threshold ratios for visible area changes.
5059  *
5060  * @param option Instance of visible area change event parameters.
5061  * @param value Array of threshold ratios.
5062  * @param size Size of the threshold array.
5063  * @return Returns the result code.
5064  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
5065  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
5066  *         Returns {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} if the provided buffer size is insufficient.
5067  *         If an error code is returned, it may be due to a failure in parameter validation;
5068  *         the parameter must not be null.
5069  * @since 17
5070  */
5071 int32_t OH_ArkUI_VisibleAreaEventOptions_GetRatios(ArkUI_VisibleAreaEventOptions* option, float* value, int32_t* size);
5072 
5073 /**
5074  * @brief Obtains the expected update interval for visible area changes.
5075  *
5076  * @param option Instance of visible area change event parameters.
5077  * @return Returns the expected update interval, in ms.  Default value: <b>1000</b>.
5078  * @since 17
5079  */
5080 int32_t OH_ArkUI_VisibleAreaEventOptions_GetExpectedUpdateInterval(ArkUI_VisibleAreaEventOptions* option);
5081 
5082 /**
5083  *@brief Creates a TextPickerRangeContent instance.
5084  *
5085  *@param length The length of the picker array.
5086  *@return Returns a <b>TextPickerRangeContent</b> instance.
5087  *@since 19
5088  */
5089 ArkUI_TextPickerRangeContentArray* OH_ArkUI_TextPickerRangeContentArray_Create(int32_t length);
5090 
5091 /**
5092  *@brief Sets the icon of items in a text picker ranges.
5093  *
5094  *@param handle The TextPickerRangeContent instance for obtaining information.
5095  *@param icon Icon address.
5096  *@param index The index position of the value to be obtained.
5097  *@since 19
5098  */
5099 void OH_ArkUI_TextPickerRangeContentArray_SetIconAtIndex(
5100     ArkUI_TextPickerRangeContentArray* handle, char* icon, int32_t index);
5101 
5102 /**
5103  *@brief Sets the text of items in a text picker ranges.
5104  *
5105  *@param handle The TextPickerRangeContent instance for obtaining information.
5106  *@param text Text content.
5107  *@param index The index position of the value to be obtained.
5108  *@since 19
5109  */
5110 void OH_ArkUI_TextPickerRangeContentArray_SetTextAtIndex(
5111     ArkUI_TextPickerRangeContentArray* handle, char* text, int32_t index);
5112 
5113 /**
5114  *@brief Destroys the TextPickerRangeContent instance.
5115  *
5116  *@param handle The TextPickerRangeContent instance for obtaining information.
5117  *@since 19
5118  */
5119 void OH_ArkUI_TextPickerRangeContentArray_Destroy(ArkUI_TextPickerRangeContentArray* handle);
5120 
5121 /**
5122  *@brief Creates a TextCascadePickerRangeContent instance.
5123  *
5124  *@param length The length of the picker arry.
5125  *@return Returns a <b>TextCascadePickerRangeContent</b> instance.
5126  *@since 19
5127  */
5128 ArkUI_TextCascadePickerRangeContentArray* OH_ArkUI_TextCascadePickerRangeContentArray_Create(int32_t length);
5129 
5130 /**
5131  *@brief Sets the text of items in a multi text picker ranges.
5132  *
5133  *@param handle The TextCascadePickerRangeContent instance for obtaining information.
5134  *@param text text content.
5135  *@param index The index position of the value to be obtained.
5136  *@since 19
5137  */
5138 void OH_ArkUI_TextCascadePickerRangeContentArray_SetTextAtIndex(
5139     ArkUI_TextCascadePickerRangeContentArray* handle, char* text, int32_t index);
5140 
5141 /**
5142  *@brief Sets the child info of items in a multi text picker ranges.
5143  *
5144  *@param handle The TextCascadePickerRangeContent instance for obtaining information.
5145  *@param child The child instance.
5146  *@param index The index position of the value to be obtained.
5147  *@since 19
5148  */
5149 void OH_ArkUI_TextCascadePickerRangeContentArray_SetChildAtIndex(
5150     ArkUI_TextCascadePickerRangeContentArray* handle, ArkUI_TextCascadePickerRangeContentArray* child, int32_t index);
5151 
5152 /**
5153  *@brief Destroys the TextCascadePickerRangeContent instance.
5154  *
5155  *@param handle The TextCascadePickerRangeContent instance for obtaining information.
5156  *@since 19
5157  */
5158 void OH_ArkUI_TextCascadePickerRangeContentArray_Destroy(ArkUI_TextCascadePickerRangeContentArray* handle);
5159 
5160 /**
5161  * @brief Create an object for the EmbeddedComponent option.
5162  *
5163  * @return A pointer to the object of the EmbeddedComponent option.
5164  * @since 20
5165  */
5166 ArkUI_EmbeddedComponentOption* OH_ArkUI_EmbeddedComponentOption_Create();
5167 
5168 /**
5169  * @brief Destroy the object by EmbeddedComponent option.
5170  *
5171  * @param option Pointer to the object by the EmbeddeComponent to be destroyed.
5172  * @since 20
5173  */
5174 void OH_ArkUI_EmbeddedComponentOption_Dispose(ArkUI_EmbeddedComponentOption* option);
5175 
5176 /**
5177  * @brief Set the onError of EmbeddedComponent.
5178  *
5179  * @param option Pointer to the object option by the EmbeddedComponent.
5180  * @param code Common error information about the API invoking failure.
5181  * @param name Common error name information about the API invoking failure.
5182  * @param message Common error message information about the API invoking failure.
5183  * @since 20
5184  */
5185 void OH_ArkUI_EmbeddedComponentOption_SetOnError(
5186     ArkUI_EmbeddedComponentOption* option, void (*callback)(int32_t code, const char* name, const char* message));
5187 
5188 /**
5189  * @brief Set the onTerminated of EmbeddedComponent.
5190  *
5191  * @param option Pointer to the object option by the EmbeddedComponent.
5192  * @param code Result code returned when the EmbeddedUIExtensionAbility exits.
5193  * @param want Data returned when the EmbeddedUIExtensionAbility exits.
5194  * @since 20
5195  */
5196 void OH_ArkUI_EmbeddedComponentOption_SetOnTerminated(
5197     ArkUI_EmbeddedComponentOption* option, void (*callback)(int32_t code, AbilityBase_Want* want));
5198 #ifdef __cplusplus
5199 };
5200 #endif
5201 
5202 #endif // ARKUI_NATIVE_TYPE_H
5203 /** @} */
5204