• 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  * @kit ArkUI
34  * @since 12
35  */
36 
37 #ifndef ARKUI_NATIVE_TYPE_H
38 #define ARKUI_NATIVE_TYPE_H
39 
40 #include <stdint.h>
41 
42 #include "drawable_descriptor.h"
43 
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47 
48 /**
49  * @brief Defines the ArkUI native component object.
50  *
51  * @since 12
52  */
53 struct ArkUI_Node;
54 
55 /**
56  * @brief Defines the pointer type of the ArkUI node content
57  *
58  * @since 12
59  */
60 typedef struct ArkUI_NodeContent* ArkUI_NodeContentHandle;
61 
62 /**
63  * @brief Defines the custom dialog box controller of ArkUI on the native side.
64  *
65  * @since 12
66  */
67 struct ArkUI_NativeDialog;
68 
69 /**
70  * @brief Sets the size constraints of a component during component layout.
71  *
72  * @since 12
73  */
74 typedef struct ArkUI_LayoutConstraint ArkUI_LayoutConstraint;
75 
76 /**
77  * @brief Defines the structure of the component drawing context.
78  *
79  * @since 12
80  */
81 typedef struct ArkUI_DrawContext ArkUI_DrawContext;
82 
83 /**
84  * @brief Defines the pointer to the ArkUI native component object.
85  *
86  * @since 12
87  */
88 typedef struct ArkUI_Node* ArkUI_NodeHandle;
89 
90 /**
91  * @brief Defines the pointer to the custom dialog box controller of ArkUI on the native side.
92  *
93  * @since 12
94  */
95 typedef struct ArkUI_NativeDialog* ArkUI_NativeDialogHandle;
96 
97 /**
98  * @brief Defines the water flow section configuration.
99  *
100  * @since 12
101  */
102 typedef struct ArkUI_WaterFlowSectionOption ArkUI_WaterFlowSectionOption;
103 
104 /**
105  * @brief Define the configuration information of the Item within the ListitemSwipeActionOption method.
106  *
107  * @since 12
108  */
109 typedef struct ArkUI_ListItemSwipeActionItem ArkUI_ListItemSwipeActionItem;
110 
111 /**
112  * @brief Define the configuration information for the ListitemSwipeActionOption method.
113  *
114  * @since 12
115  */
116 typedef struct ArkUI_ListItemSwipeActionOption ArkUI_ListItemSwipeActionOption;
117 
118 /**
119  * @brief Defines the ArkUI native context object.
120  *
121  * @since 12
122  */
123 struct ArkUI_Context;
124 
125 /**
126   * @brief Defines the pointer to the context instance object pointer definition of ArkUI on the native side.
127   *
128   * @since 12
129   */
130 typedef struct ArkUI_Context* ArkUI_ContextHandle;
131 
132 /**
133  * @brief Defines the navigation indicator style for the swiper.
134  *
135  * @since 12
136  */
137 typedef struct ArkUI_SwiperIndicator ArkUI_SwiperIndicator;
138 
139 /**
140 * @brief Define the data objects of styled string supported by text components.
141 *
142 * @since 14
143 */
144 typedef struct ArkUI_StyledString_Descriptor ArkUI_StyledString_Descriptor;
145 
146 /**
147   * @brief specifies the alignment rules for subcomponents set in relative containers.
148   *
149   * @since 12
150   */
151 typedef struct ArkUI_AlignmentRuleOption ArkUI_AlignmentRuleOption;
152 
153 /**
154   * @brief guideLine parameters, used to define the id, direction and position of the guideline.
155   *
156   * @since 12
157   */
158 typedef struct ArkUI_GuidelineOption ArkUI_GuidelineOption;
159 
160 /**
161   * @brief barrier parameter, used to define the id,
162   * direction and components of the barrier that it depends on when generating it.
163   *
164   * @since 12
165   */
166 typedef struct ArkUI_BarrierOption ArkUI_BarrierOption;
167 
168 /**
169  * @brief Define the ChildrenMainSize class information for a List.
170  *
171  * @since 12
172 */
173 typedef struct ArkUI_ListChildrenMainSize ArkUI_ListChildrenMainSize;
174 
175 /**
176  * @brief Defines the image frame.
177  *
178  * @since 12
179 */
180 typedef struct ArkUI_ImageAnimatorFrameInfo ArkUI_ImageAnimatorFrameInfo;
181 
182 /**
183  * @brief Defines the accessibility state for the component.
184  *
185  * @since 12
186  */
187 typedef struct ArkUI_AccessibilityState ArkUI_AccessibilityState;
188 
189 /**
190  * @brief Defines the accessibility value for the component.
191  *
192  * @since 12
193  */
194 typedef struct ArkUI_AccessibilityValue ArkUI_AccessibilityValue;
195 
196 /**
197  * @brief Define the information of the Custom Property class for custom properties.
198  *
199  * @since 14
200  */
201 typedef struct ArkUI_CustomProperty ArkUI_CustomProperty;
202 
203 /**
204  * @brief Define the information of the HostWindowInfo class for window properties.
205  *
206  * @since 15
207  */
208 typedef struct ArkUI_HostWindowInfo ArkUI_HostWindowInfo;
209 
210 /**
211  * @brief Define ActiveChildenInfo class information.
212  *
213  * @since 14
214  */
215 typedef struct ArkUI_ActiveChildrenInfo ArkUI_ActiveChildrenInfo;
216 
217 /**
218  * @brief Set the linear progress indicator style.
219  *
220  * @since 15
221  */
222 typedef struct ArkUI_ProgressLinearStyleOption ArkUI_ProgressLinearStyleOption;
223 
224 /**
225  * @brief The cross-language option.
226  *
227  * @since 15
228  */
229 typedef struct ArkUI_CrossLanguageOption ArkUI_CrossLanguageOption;
230 
231 /**
232  * @brief Defines the event callback type.
233  *
234  * @since 12
235  */
236 typedef struct {
237     /** Custom type. */
238     void* userData;
239     /** Event callback. */
240     void (*callback)(void* userData);
241 } ArkUI_ContextCallback;
242 /**
243  * @brief Provides the number types of ArkUI in the native code.
244  *
245  * @since 12
246  */
247 typedef union {
248     /** Floating-point type. */
249     float f32;
250     /** Signed integer. */
251     int32_t i32;
252     /** Unsigned integer. */
253     uint32_t u32;
254 } ArkUI_NumberValue;
255 
256 /**
257  * @brief Enumerates the alignment modes.
258  *
259  * @since 12
260  */
261 typedef enum {
262     /** Top start. */
263     ARKUI_ALIGNMENT_TOP_START = 0,
264     /** Top center. */
265     ARKUI_ALIGNMENT_TOP,
266     /** Top end. */
267     ARKUI_ALIGNMENT_TOP_END,
268     /** Vertically centered start. */
269     ARKUI_ALIGNMENT_START,
270     /** Horizontally and vertically centered. */
271     ARKUI_ALIGNMENT_CENTER,
272     /** Vertically centered end. */
273     ARKUI_ALIGNMENT_END,
274     /** Bottom start. */
275     ARKUI_ALIGNMENT_BOTTOM_START,
276     /** Horizontally centered on the bottom. */
277     ARKUI_ALIGNMENT_BOTTOM,
278     /** Bottom end. */
279     ARKUI_ALIGNMENT_BOTTOM_END,
280 } ArkUI_Alignment;
281 
282 /**
283  * @brief Enumerates the image repeat patterns.
284  *
285  * @since 12
286  */
287 typedef enum {
288     /** The image is not repeatedly drawn. */
289     ARKUI_IMAGE_REPEAT_NONE = 0,
290     /** The image is repeatedly drawn only along the x-axis. */
291     ARKUI_IMAGE_REPEAT_X,
292     /** The image is repeatedly drawn only along the y-axis. */
293     ARKUI_IMAGE_REPEAT_Y,
294     /** The image is repeatedly drawn along both axes. */
295     ARKUI_IMAGE_REPEAT_XY,
296 } ArkUI_ImageRepeat;
297 
298 /**
299  * @brief Enumerates the font styles.
300  *
301  * @since 12
302  */
303 typedef enum {
304     /** Standard font style. */
305     ARKUI_FONT_STYLE_NORMAL = 0,
306     /** Italic font style. */
307     ARKUI_FONT_STYLE_ITALIC
308 } ArkUI_FontStyle;
309 
310 /**
311  * @brief Enumerates the font weights.
312  *
313  * @since 12
314  */
315 typedef enum {
316     /** 100 */
317     ARKUI_FONT_WEIGHT_W100 = 0,
318     /** 200 */
319     ARKUI_FONT_WEIGHT_W200,
320     /** 300 */
321     ARKUI_FONT_WEIGHT_W300,
322     /** 400 */
323     ARKUI_FONT_WEIGHT_W400,
324     /** 500 */
325     ARKUI_FONT_WEIGHT_W500,
326     /** 600 */
327     ARKUI_FONT_WEIGHT_W600,
328     /** 700 */
329     ARKUI_FONT_WEIGHT_W700,
330     /** 800 */
331     ARKUI_FONT_WEIGHT_W800,
332     /** 900 */
333     ARKUI_FONT_WEIGHT_W900,
334     /** The font weight is bold. */
335     ARKUI_FONT_WEIGHT_BOLD,
336     /** The font weight is normal. */
337     ARKUI_FONT_WEIGHT_NORMAL,
338     /** The font weight is bolder. */
339     ARKUI_FONT_WEIGHT_BOLDER,
340     /** The font weight is lighter. */
341     ARKUI_FONT_WEIGHT_LIGHTER,
342     /** The font weight is medium. */
343     ARKUI_FONT_WEIGHT_MEDIUM,
344     /** The font weight is normal. */
345     ARKUI_FONT_WEIGHT_REGULAR,
346 } ArkUI_FontWeight;
347 
348 /**
349  * @brief Enumerates the text alignment mode.
350  *
351  * @since 12
352  */
353 typedef enum {
354     /** Aligned with the start. */
355     ARKUI_TEXT_ALIGNMENT_START = 0,
356     /** Horizontally centered. */
357     ARKUI_TEXT_ALIGNMENT_CENTER,
358     /** Aligned with the end. */
359     ARKUI_TEXT_ALIGNMENT_END,
360     /** Aligned with both margins. */
361     ARKUI_TEXT_ALIGNMENT_JUSTIFY,
362 } ArkUI_TextAlignment;
363 
364 /**
365  * @brief Enumerates the types of the Enter key for a single-line text box.
366  *
367  * @since 12
368  */
369 typedef enum {
370     /** The Enter key is labeled "Go." */
371     ARKUI_ENTER_KEY_TYPE_GO = 2,
372     /** The Enter key is labeled "Search." */
373     ARKUI_ENTER_KEY_TYPE_SEARCH = 3,
374     /** The Enter key is labeled "Send." */
375     ARKUI_ENTER_KEY_TYPE_SEND,
376     /** The Enter key is labeled "Next." */
377     ARKUI_ENTER_KEY_TYPE_NEXT,
378     /** The Enter key is labeled "Done." */
379     ARKUI_ENTER_KEY_TYPE_DONE,
380     /** The Enter key is labeled "Previous." */
381     ARKUI_ENTER_KEY_TYPE_PREVIOUS,
382     /** The Enter key is labeled "New Line." */
383     ARKUI_ENTER_KEY_TYPE_NEW_LINE,
384 } ArkUI_EnterKeyType;
385 
386 /**
387  * @brief Enumerates the text input types.
388  *
389  * @since 12
390  */
391 typedef enum {
392     /** Normal input mode. */
393     ARKUI_TEXTINPUT_TYPE_NORMAL = 0,
394     /** Number input mode. */
395     ARKUI_TEXTINPUT_TYPE_NUMBER = 2,
396     /** Phone number input mode. */
397     ARKUI_TEXTINPUT_TYPE_PHONE_NUMBER = 3,
398     /** Email address input mode. */
399     ARKUI_TEXTINPUT_TYPE_EMAIL = 5,
400     /** Password input mode. */
401     ARKUI_TEXTINPUT_TYPE_PASSWORD = 7,
402     /** Numeric password input mode. */
403     ARKUI_TEXTINPUT_TYPE_NUMBER_PASSWORD = 8,
404     /** Lock screen password input mode. */
405     ARKUI_TEXTINPUT_TYPE_SCREEN_LOCK_PASSWORD = 9,
406     /** Username input mode. */
407     ARKUI_TEXTINPUT_TYPE_USER_NAME = 10,
408     /** New password input mode. */
409     ARKUI_TEXTINPUT_TYPE_NEW_PASSWORD = 11,
410     /** Number input mode with a decimal point. */
411     ARKUI_TEXTINPUT_TYPE_NUMBER_DECIMAL = 12,
412 } ArkUI_TextInputType;
413 
414 /**
415  * @brief Enumerates the text box types.
416  *
417  * @since 12
418  */
419 typedef enum {
420     /** Normal input mode. */
421     ARKUI_TEXTAREA_TYPE_NORMAL = 0,
422     /** Number input mode. */
423     ARKUI_TEXTAREA_TYPE_NUMBER = 2,
424     /** Phone number input mode. */
425     ARKUI_TEXTAREA_TYPE_PHONE_NUMBER = 3,
426     /** Email address input mode. */
427     ARKUI_TEXTAREA_TYPE_EMAIL = 5,
428 } ArkUI_TextAreaType;
429 
430 /**
431  * @brief Enumerates the styles of the Cancel button.
432  *
433  * @since 12
434  */
435 typedef enum {
436     /** The Cancel button is always displayed. */
437     ARKUI_CANCELBUTTON_STYLE_CONSTANT = 0,
438     /** The Cancel button is always hidden. */
439     ARKUI_CANCELBUTTON_STYLE_INVISIBLE,
440     /** The Cancel button is displayed when there is text input. */
441     ARKUI_CANCELBUTTON_STYLE_INPUT,
442 } ArkUI_CancelButtonStyle;
443 
444 /**
445  * @brief Enumerates the types of the <b><XComponent></b> component.
446  *
447  * @since 12
448  */
449 typedef enum {
450     /** The custom content of EGL/OpenGL ES and media data is displayed individually on the screen. */
451     ARKUI_XCOMPONENT_TYPE_SURFACE = 0,
452     /** The custom content of EGL/OpenGL ES and media data is grouped and displayed together with content
453       * of the component.
454       */
455     ARKUI_XCOMPONENT_TYPE_TEXTURE = 2,
456 } ArkUI_XComponentType;
457 
458 /**
459  * @brief Enumerates the styles of the progress indicator.
460  *
461  * @since 12
462  */
463 typedef enum {
464     /** Linear style. */
465     ARKUI_PROGRESS_TYPE_LINEAR = 0,
466     /** Indeterminate ring style. */
467     ARKUI_PROGRESS_TYPE_RING,
468     /** Eclipse style. */
469     ARKUI_PROGRESS_TYPE_ECLIPSE,
470     /** Determinate ring style. */
471     ARKUI_PROGRESS_TYPE_SCALE_RING,
472     /** Capsule style. */
473     ARKUI_PROGRESS_TYPE_CAPSULE,
474 } ArkUI_ProgressType;
475 
476 /**
477  * @brief Enumerates the text decoration types.
478  *
479  * @since 12
480  */
481 typedef enum {
482     /** No text decoration. */
483     ARKUI_TEXT_DECORATION_TYPE_NONE = 0,
484     /** Line under the text. */
485     ARKUI_TEXT_DECORATION_TYPE_UNDERLINE,
486     /** Line over the text. */
487     ARKUI_TEXT_DECORATION_TYPE_OVERLINE,
488     /** Line through the text. */
489     ARKUI_TEXT_DECORATION_TYPE_LINE_THROUGH,
490 } ArkUI_TextDecorationType;
491 
492 /**
493  * @brief Enumerates the text decoration styles.
494  *
495  * @since 12
496  */
497 typedef enum {
498     /** Single solid line. */
499     ARKUI_TEXT_DECORATION_STYLE_SOLID = 0,
500     /** Double solid line. */
501     ARKUI_TEXT_DECORATION_STYLE_DOUBLE,
502     /** Dotted line. */
503     ARKUI_TEXT_DECORATION_STYLE_DOTTED,
504     /** Dashed line. */
505     ARKUI_TEXT_DECORATION_STYLE_DASHED,
506     /** Wavy line. */
507     ARKUI_TEXT_DECORATION_STYLE_WAVY,
508 } ArkUI_TextDecorationStyle;
509 
510 /**
511  * @brief Enumerates the text cases.
512  *
513  * @since 12
514  */
515 typedef enum {
516     /** The original case of the text is retained. */
517     ARKUI_TEXT_CASE_NORMAL = 0,
518     /** All letters in the text are in lowercase. */
519     ARKUI_TEXT_CASE_LOWER,
520     /** All letters in the text are in uppercase. */
521     ARKUI_TEXT_CASE_UPPER,
522 } ArkUI_TextCase;
523 
524 /**
525  * @brief Enumerates the text copy and paste modes.
526  *
527  * @since 12
528  */
529 typedef enum {
530     /** Copy is not allowed. */
531     ARKUI_COPY_OPTIONS_NONE = 0,
532     /** Intra-application copy is allowed. */
533     ARKUI_COPY_OPTIONS_IN_APP,
534     /** Intra-device copy is allowed. */
535     ARKUI_COPY_OPTIONS_LOCAL_DEVICE,
536     /** Cross-device copy is allowed. */
537     ARKUI_COPY_OPTIONS_CROSS_DEVICE,
538 } ArkUI_CopyOptions;
539 
540 /**
541  * @brief Enumerates the shadow types.
542  *
543  * @since 12
544  */
545 typedef enum {
546     /** Color. */
547     ARKUI_SHADOW_TYPE_COLOR = 0,
548     /** Blur. */
549     ARKUI_SHADOW_TYPE_BLUR
550 } ArkUI_ShadowType;
551 
552 /**
553  * @brief Enumerates the types of the text picker.
554  *
555  * @since 12
556  */
557 typedef enum {
558     /** Single-column text picker. */
559     ARKUI_TEXTPICKER_RANGETYPE_SINGLE = 0,
560     /** Multi-column text picker. */
561     ARKUI_TEXTPICKER_RANGETYPE_MULTI,
562     /** Single-column text picker with image resources. */
563     ARKUI_TEXTPICKER_RANGETYPE_RANGE_CONTENT,
564     /** Interconnected multi-column text picker. */
565     ARKUI_TEXTPICKER_RANGETYPE_CASCADE_RANGE_CONTENT,
566 } ArkUI_TextPickerRangeType;
567 
568 /**
569  * @brief Defines the input structure of the single-column text picker with image resources.
570  *
571  * @since 12
572  */
573 typedef struct {
574     /** Image resource. */
575     const char* icon;
576     /** Text information. */
577     const char* text;
578 } ARKUI_TextPickerRangeContent;
579 
580 /**
581  * @brief Defines the input structure of the interconnected multi-column text picker.
582  *
583  * @since 12
584  */
585 typedef struct {
586     /** Text information. */
587     const char* text;
588     /** Interconnected data. */
589     const ARKUI_TextPickerRangeContent* children;
590     /** Size of the interconnected data array. */
591     int32_t size;
592 } ARKUI_TextPickerCascadeRangeContent;
593 
594 /**
595  * @brief Enumerates the effects used at the edges of the component when the boundary of the scrollable content is
596  * reached.
597  *
598  * @since 12
599  */
600 typedef enum {
601     /** Spring effect. When at one of the edges, the component can move beyond the bounds based on the initial
602      *  speed or through touches, and produces a bounce effect when the user releases their finger. */
603     ARKUI_EDGE_EFFECT_SPRING = 0,
604     /** Fade effect. When at one of the edges, the component produces a fade effect. */
605     ARKUI_EDGE_EFFECT_FADE,
606     /** No effect after the scrollbar is moved to the edge. */
607     ARKUI_EDGE_EFFECT_NONE,
608 } ArkUI_EdgeEffect;
609 
610 /**
611  * @brief Enumerates the scroll directions for the <b><Scroll></b> component.
612  *
613  * @since 12
614  */
615 typedef enum {
616     /** Only vertical scrolling is supported. */
617     ARKUI_SCROLL_DIRECTION_VERTICAL = 0,
618     /** Only horizontal scrolling is supported. */
619     ARKUI_SCROLL_DIRECTION_HORIZONTAL,
620     /** Scrolling is not allowed. */
621     ARKUI_SCROLL_DIRECTION_NONE = 3,
622 } ArkUI_ScrollDirection;
623 
624 /**
625  * @brief Enumerates the alignment modes of list items when scrolling ends.
626  *
627  * @since 12
628  */
629 typedef enum {
630     /** No alignment. This is the default value. */
631     ARKUI_SCROLL_SNAP_ALIGN_NONE = 0,
632     /** The first item in the view is aligned at the start of the list. */
633     ARKUI_SCROLL_SNAP_ALIGN_START,
634     /** The middle items in the view are aligned in the center of the list. */
635     ARKUI_SCROLL_SNAP_ALIGN_CENTER,
636     /** The last item in the view is aligned at the end of the list. */
637     ARKUI_SCROLL_SNAP_ALIGN_END,
638 } ArkUI_ScrollSnapAlign;
639 
640 /**
641  * @brief Enumerates the scrollbar display modes.
642  *
643  * @since 12
644  */
645 typedef enum {
646     /** Hide. */
647     ARKUI_SCROLL_BAR_DISPLAY_MODE_OFF = 0,
648     /** Display on demand (displays when the screen is touched and disappears after 2s). */
649     ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO,
650     /** Always display. */
651     ARKUI_SCROLL_BAR_DISPLAY_MODE_ON,
652 } ArkUI_ScrollBarDisplayMode;
653 
654 /**
655  * @brief Enumerates the scroll directions for the <b><List></b> component.
656  *
657  * @since 12
658  */
659 typedef enum {
660     /** Only vertical scrolling is supported. */
661     ARKUI_AXIS_VERTICAL = 0,
662     /** Only horizontal scrolling is supported. */
663     ARKUI_AXIS_HORIZONTAL,
664 } ArkUI_Axis;
665 
666 /**
667  * @brief Enumerates the modes for pinning the header to the top or the footer to the bottom.
668  *
669  * @since 12
670  */
671 typedef enum {
672     /** In the list item group, the header is not pinned to the top, and the footer is not pinned to the bottom. */
673     ARKUI_STICKY_STYLE_NONE = 0,
674     /** In the list item group, the header is pinned to the top, and the footer is not pinned to the bottom. */
675     ARKUI_STICKY_STYLE_HEADER = 1,
676     /** In the list item group, the footer is pinned to the bottom, and the header is not pinned to the top. */
677     ARKUI_STICKY_STYLE_FOOTER = 2,
678     /** In the list item group, the footer is pinned to the bottom, and the header is pinned to the top. */
679     ARKUI_STICKY_STYLE_BOTH = 3,
680 } ArkUI_StickyStyle;
681 
682 /**
683  * @brief Enumerates the border styles.
684  *
685  * @since 12
686  */
687 typedef enum {
688     /** Solid border. */
689     ARKUI_BORDER_STYLE_SOLID = 0,
690     /** Dashed border. */
691     ARKUI_BORDER_STYLE_DASHED,
692     /** Dotted border. */
693     ARKUI_BORDER_STYLE_DOTTED,
694 } ArkUI_BorderStyle;
695 
696 /**
697  * @brief Enumerates the hit test modes.
698  *
699  * @since 12
700  */
701 typedef enum {
702     /** Both the node and its child node respond to the hit test of a touch event, but its sibling node is blocked from
703      *  the hit test. */
704     ARKUI_HIT_TEST_MODE_DEFAULT = 0,
705     /** The node responds to the hit test of a touch event, but its child node and sibling node are blocked from the
706      *  hit test. */
707     ARKUI_HIT_TEST_MODE_BLOCK,
708     /** Both the node and its child node respond to the hit test of a touch event, and its sibling node is also
709      * considered during the hit test. */
710     ARKUI_HIT_TEST_MODE_TRANSPARENT,
711     /** The node does not respond to the hit test of a touch event. */
712     ARKUI_HIT_TEST_MODE_NONE
713 } ArkUI_HitTestMode;
714 
715 /**
716  * @brief Enumerates the shadow styles.
717  *
718  * @since 12
719  */
720 typedef enum {
721     /** Mini shadow. */
722     ARKUI_SHADOW_STYLE_OUTER_DEFAULT_XS = 0,
723     /** Little shadow. */
724     ARKUI_SHADOW_STYLE_OUTER_DEFAULT_SM,
725     /** Medium shadow. */
726     ARKUI_SHADOW_STYLE_OUTER_DEFAULT_MD,
727     /** Large shadow. */
728     ARKUI_SHADOW_STYLE_OUTER_DEFAULT_LG,
729     /** Floating small shadow. */
730     ARKUI_SHADOW_STYLE_OUTER_FLOATING_SM,
731     /** Floating medium shadow. */
732     ARKUI_SHADOW_STYLE_OUTER_FLOATING_MD,
733 } ArkUI_ShadowStyle;
734 
735 /**
736  * @brief Enumerates the animation curves.
737  *
738  * @since 12
739  */
740 typedef enum {
741     /** The animation speed keeps unchanged. */
742     ARKUI_CURVE_LINEAR = 0,
743     /** The animation starts slowly, accelerates, and then slows down towards the end. */
744     ARKUI_CURVE_EASE,
745     /** The animation starts at a low speed and then picks up speed until the end. */
746     ARKUI_CURVE_EASE_IN,
747     /** The animation ends at a low speed. */
748     ARKUI_CURVE_EASE_OUT,
749     /** The animation starts and ends at a low speed. */
750     ARKUI_CURVE_EASE_IN_OUT,
751     /** The animation uses the standard curve */
752     ARKUI_CURVE_FAST_OUT_SLOW_IN,
753     /** The animation uses the deceleration curve. */
754     ARKUI_CURVE_LINEAR_OUT_SLOW_IN,
755     /** The animation uses the acceleration curve. */
756     ARKUI_CURVE_FAST_OUT_LINEAR_IN,
757     /** The animation uses the extreme deceleration curve. */
758     ARKUI_CURVE_EXTREME_DECELERATION,
759     /** The animation uses the sharp curve. */
760     ARKUI_CURVE_SHARP,
761     /** The animation uses the rhythm curve. */
762     ARKUI_CURVE_RHYTHM,
763     /** The animation uses the smooth curve. */
764     ARKUI_CURVE_SMOOTH,
765     /** The animation uses the friction curve */
766     ARKUI_CURVE_FRICTION,
767 } ArkUI_AnimationCurve;
768 
769 /**
770  * @brief Enumerates arrow styles of the navigation point indicator.
771  *
772  * @since 12
773  */
774 typedef enum {
775     /** The arrow is not displayed for the navigation point indicator. */
776     ARKUI_SWIPER_ARROW_HIDE = 0,
777     /** The arrow is displayed for the navigation point indicator. */
778     ARKUI_SWIPER_ARROW_SHOW,
779     /** The arrow is displayed only when the mouse pointer hovers over the navigation point indicator. */
780     ARKUI_SWIPER_ARROW_SHOW_ON_HOVER,
781 } ArkUI_SwiperArrow;
782 
783 /**
784  * @brief Nested scrolling mode for Swiper components and parent components.
785  *
786  * @since 12
787  */
788 typedef enum {
789     /** Swiper only scrolls on its own and is not linked to its parent component. */
790     ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY = 0,
791     /** The Swiper itself scrolls first, and the parent component scrolls after it reaches the edge. After the parent
792      * component scrolls to the edge, if the parent component has an edge effect, the parent component triggers the edge
793      * effect; otherwise, the Swiper triggers the edge effect. */
794     ARKUI_SWIPER_NESTED_SRCOLL_SELF_FIRST,
795 } ArkUI_SwiperNestedScrollMode;
796 
797 /**
798  * @brief Enumerates the page flipping modes using the mouse wheel for the <b>Swiper</b> component.
799  *
800  * @since 15
801  */
802 typedef enum {
803     /** When the mouse wheel is scrolled continuously, multiple pages are flipped, which is determined by the number of
804      *  times that mouse events are reported. */
805     ARKUI_PAGE_FLIP_MODE_CONTINUOUS = 0,
806     /** The system does not respond to other mouse wheel events until the page flipping animation ends. */
807     ARKUI_PAGE_FLIP_MODE_SINGLE,
808 } ArkUI_PageFlipMode;
809 
810 /**
811  * @brief Enumerates the animation modes for {@link NODE_SWIPER_INDEX}.
812  *
813  * @since 15
814  */
815 typedef enum {
816     /** Jump to target index without animation. */
817     ARKUI_SWIPER_NO_ANIMATION = 0,
818     /** Scroll to target index with animation. */
819     ARKUI_SWIPER_DEFAULT_ANIMATION = 1,
820     /** Jump to some index near the target index without animation, then scroll to target index with animation. */
821     ARKUI_SWIPER_FAST_ANIMATION = 2,
822 } ArkUI_SwiperAnimationMode;
823 
824 /**
825  * @brief Enumerates the accessibility modes.
826  *
827  * @since 12
828  */
829 typedef enum {
830     /** Whether the component can be identified by the accessibility service is dependent on the component. */
831     ARKUI_ACCESSIBILITY_MODE_AUTO = 0,
832     /** The component can be identified by the accessibility service. */
833     ARKUI_ACCESSIBILITY_MODE_ENABLED,
834     /** The component cannot be identified by the accessibility service. */
835     ARKUI_ACCESSIBILITY_MODE_DISABLED,
836     /** The component and all its child components cannot be identified by the accessibility service. */
837     ARKUI_ACCESSIBILITY_MODE_DISABLED_FOR_DESCENDANTS,
838 } ArkUI_AccessibilityMode;
839 
840 /**
841  * @brief Defines whether copy and paste is allowed for text content.
842  *
843  * @since 12
844  */
845 typedef enum {
846     /** Copy is not allowed. */
847     ARKUI_TEXT_COPY_OPTIONS_NONE = 0,
848     /** Intra-application copy is allowed. */
849     ARKUI_TEXT_COPY_OPTIONS_IN_APP,
850     /** Intra-device copy is allowed. */
851     ARKUI_TEXT_COPY_OPTIONS_LOCAL_DEVICE,
852     /** Cross-device copy is allowed. */
853     ARKUI_TEXT_COPY_OPTIONS_CROSS_DEVICE,
854 } ArkUI_TextCopyOptions;
855 
856 /**
857  * @brief Defines how the adaptive height is determined for the text.
858  *
859  * @since 12
860  */
861 typedef enum {
862     /** Prioritize the <b>maxLines</b> settings. */
863     ARKUI_TEXT_HEIGHT_ADAPTIVE_POLICY_MAX_LINES_FIRST = 0,
864     /** Prioritize the <b>minFontSize</b> settings. */
865     ARKUI_TEXT_HEIGHT_ADAPTIVE_POLICY_MIN_FONT_SIZE_FIRST,
866     /** Prioritize the layout constraint settings in terms of height. */
867     ARKUI_TEXT_HEIGHT_ADAPTIVE_POLICY_LAYOUT_CONSTRAINT_FIRST,
868 } ArkUI_TextHeightAdaptivePolicy;
869 
870 /**
871  * @brief Defines nested scrolling options.
872  *
873  * @since 12
874  */
875 typedef enum {
876     /** The scrolling is contained within the component, and no scroll chaining occurs, that is, the parent component
877      * does not scroll when the component scrolling reaches the boundary. */
878     ARKUI_SCROLL_NESTED_MODE_SELF_ONLY = 0,
879     /** The component scrolls first, and when it hits the boundary, the parent component scrolls.
880      *  When the parent component hits the boundary, its edge effect is displayed. If no edge
881      *  effect is specified for the parent component, the edge effect of the child component is displayed instead. */
882     ARKUI_SCROLL_NESTED_MODE_SELF_FIRST,
883     /** The parent component scrolls first, and when it hits the boundary, the component scrolls.
884      *  When the component hits the boundary, its edge effect is displayed. If no edge effect is specified for the
885      *  component, the edge effect of the parent component is displayed instead. */
886     ARKUI_SCROLL_NESTED_MODE_PARENT_FIRST,
887     /** The component and its parent component scroll at the same time. When both the component and its parent component
888      *  hit the boundary, the edge effect of the component is displayed. If no edge effect is specified for the
889      *  component, the edge effect of the parent component is displayed instead. */
890     ARKUI_SCROLL_NESTED_MODE_PARALLEL,
891 } ArkUI_ScrollNestedMode;
892 
893 /**
894  * @brief Defines the edge to which the component scrolls.
895  *
896  * @since 12
897  */
898 typedef enum {
899     /** Top edge in the vertical direction. */
900     ARKUI_SCROLL_EDGE_TOP = 0,
901     /** Bottom edge in the vertical direction. */
902     ARKUI_SCROLL_EDGE_BOTTOM,
903     /** Start position in the horizontal direction. */
904     ARKUI_SCROLL_EDGE_START,
905     /** End position in the horizontal direction. */
906     ARKUI_SCROLL_EDGE_END,
907 } ArkUI_ScrollEdge;
908 
909 /**
910  * @brief Alignment when scrolling to specific items.
911  *
912  * @since 12
913  */
914 typedef enum {
915     /** Align the head. Align the head of the specified item with the head of the container.*/
916     ARKUI_SCROLL_ALIGNMENT_START = 0,
917     /** Center alignment. Align the axis direction of the specified item to the center of the container.*/
918     ARKUI_SCROLL_ALIGNMENT_CENTER,
919     /** Tail alignment. Align the tail of the specified item with the tail of the container.*/
920     ARKUI_SCROLL_ALIGNMENT_END,
921     /** Automatic alignment. If the specified item is completely in the display area, no adjustments will be made.
922      * Otherwise, according to the principle of the shortest sliding distance, align the head or tail of the specified
923      * item with the container, so that the specified item is completely in the display area.*/
924     ARKUI_SCROLL_ALIGNMENT_AUTO,
925 } ArkUI_ScrollAlignment;
926 
927 /**
928  * @brief Define the current scrolling state.
929  *
930  * @since 12
931  */
932 typedef enum {
933     /** Idle state. Trigger when using the method provided by the controller to control scrolling, and trigger when
934      * dragging the scroll bar to scroll.*/
935     ARKUI_SCROLL_STATE_IDLE = 0,
936     /** Scroll state. Triggered when dragging the container with fingers to scroll.*/
937     ARKUI_SCROLL_STATE_SCROLL,
938     /** Inertial rolling state. Triggered when inertia rolling and bouncing back to the edge are performed after
939      * releasing the hand quickly.*/
940     ARKUI_SCROLL_STATE_FLING,
941 } ArkUI_ScrollState;
942 
943 /**
944  * @brief Enumerates the types of the slider in the block direction.
945  *
946  * @since 12
947  */
948 typedef enum {
949     /** Round slider. */
950     ARKUI_SLIDER_BLOCK_STYLE_DEFAULT = 0,
951     /** Slider with an image background. */
952     ARKUI_SLIDER_BLOCK_STYLE_IMAGE,
953     /** Slider in a custom shape. */
954     ARKUI_SLIDER_BLOCK_STYLE_SHAPE,
955 } ArkUI_SliderBlockStyle;
956 
957 /**
958  * @brief Enumerates the scroll directions of the slider.
959  *
960  * @since 12
961  */
962 typedef enum {
963     /** Vertical direction. */
964     ARKUI_SLIDER_DIRECTION_VERTICAL = 0,
965     /** Horizontal direction. */
966     ARKUI_SLIDER_DIRECTION_HORIZONTAL,
967 } ArkUI_SliderDirection;
968 
969 /**
970  * @brief Enumerates the slider styles.
971  *
972  * @since 12
973  */
974 typedef enum {
975     /** The slider is on the slider track. */
976     ARKUI_SLIDER_STYLE_OUT_SET = 0,
977     /** The slider is in the slider track. */
978     ARKUI_SLIDER_STYLE_IN_SET,
979     /** No slider. */
980     ARKUI_SLIDER_STYLE_NONE,
981 } ArkUI_SliderStyle;
982 
983 /**
984  * @brief Enumerates the shapes of the check box
985  *
986  * @since 12
987  */
988 typedef enum {
989     /** Circle. */
990     ArkUI_CHECKBOX_SHAPE_CIRCLE = 0,
991     /** Rounded square. */
992     ArkUI_CHECKBOX_SHAPE_ROUNDED_SQUARE,
993 } ArkUI_CheckboxShape;
994 
995 /**
996  * @brief Enumerates the animation playback modes.
997  *
998  * @since 12
999  */
1000 typedef enum {
1001     /** The animation is played forwards. */
1002     ARKUI_ANIMATION_PLAY_MODE_NORMAL = 0,
1003     /** The animation is played reversely. */
1004     ARKUI_ANIMATION_PLAY_MODE_REVERSE,
1005     /** The animation is played normally for an odd number of times (1, 3, 5...) and reversely for an even number
1006      *  of times (2, 4, 6...). */
1007     ARKUI_ANIMATION_PLAY_MODE_ALTERNATE,
1008     /** The animation is played reversely for an odd number of times (1, 3, 5...) and normally for an even number
1009      *  of times (2, 4, 6...). */
1010     ARKUI_ANIMATION_PLAY_MODE_ALTERNATE_REVERSE,
1011 } ArkUI_AnimationPlayMode;
1012 
1013 /**
1014  * @brief Defines the image size.
1015  *
1016  * @since 12
1017  */
1018 typedef enum {
1019     /** The original image aspect ratio is retained. */
1020     ARKUI_IMAGE_SIZE_AUTO = 0,
1021     /** Default value. The image is scaled with its aspect ratio retained for both sides to be greater than or equal
1022      *  to the display boundaries. */
1023     ARKUI_IMAGE_SIZE_COVER,
1024     /** The image is scaled with its aspect ratio retained for the content to be completely displayed within the display
1025      *  boundaries. */
1026     ARKUI_IMAGE_SIZE_CONTAIN,
1027 } ArkUI_ImageSize;
1028 
1029 /**
1030  * @brief Enumerates the adaptive color modes.
1031  *
1032  * @since 12
1033  */
1034 typedef enum {
1035     /** Adaptive color mode is not used. */
1036     ARKUI_ADAPTIVE_COLOR_DEFAULT = 0,
1037     /** Adaptive color mode is used. */
1038     ARKUI_ADAPTIVE_COLOR_AVERAGE,
1039 } ArkUI_AdaptiveColor;
1040 
1041 /**
1042  * @brief Enumerates the color modes.
1043  *
1044  * @since 12
1045  */
1046 typedef enum {
1047     /** Following the system color mode. */
1048     ARKUI_COLOR_MODE_SYSTEM = 0,
1049     /** Light color mode. */
1050     ARKUI_COLOR_MODE_LIGHT,
1051     /** Dark color mode. */
1052     ARKUI_COLOR_MODE_DARK,
1053 } ArkUI_ColorMode;
1054 
1055 /**
1056  * @brief Enumerates the system color modes.
1057  *
1058  * @since 12
1059  */
1060 typedef enum {
1061     /** Light color mode. */
1062     ARKUI_SYSTEM_COLOR_MODE_LIGHT = 0,
1063     /** Dark color mode. */
1064     ARKUI_SYSTEM_COLOR_MODE_DARK,
1065 } ArkUI_SystemColorMode;
1066 
1067 /**
1068  * @brief Enumerates the blur styles.
1069  *
1070  * @since 12
1071  */
1072 typedef enum {
1073     /** Thin material. */
1074     ARKUI_BLUR_STYLE_THIN = 0,
1075     /** Regular material. */
1076     ARKUI_BLUR_STYLE_REGULAR,
1077     /** Thick material. */
1078     ARKUI_BLUR_STYLE_THICK,
1079     /** Material that creates the minimum depth of field effect. */
1080     ARKUI_BLUR_STYLE_BACKGROUND_THIN,
1081     /** Material that creates a medium shallow depth of field effect. */
1082     ARKUI_BLUR_STYLE_BACKGROUND_REGULAR,
1083     /** Material that creates a high shallow depth of field effect. */
1084     ARKUI_BLUR_STYLE_BACKGROUND_THICK,
1085     /** Material that creates the maximum depth of field effect. */
1086     ARKUI_BLUR_STYLE_BACKGROUND_ULTRA_THICK,
1087     /** No blur. */
1088     ARKUI_BLUR_STYLE_NONE,
1089     /** Component ultra-thin material. */
1090     ARKUI_BLUR_STYLE_COMPONENT_ULTRA_THIN,
1091     /** Component thin material. */
1092     ARKUI_BLUR_STYLE_COMPONENT_THIN,
1093     /** Component regular material. */
1094     ARKUI_BLUR_STYLE_COMPONENT_REGULAR,
1095     /** Component thick material. */
1096     ARKUI_BLUR_STYLE_COMPONENT_THICK,
1097     /** Component ultra-thick material. */
1098     ARKUI_BLUR_STYLE_COMPONENT_ULTRA_THICK,
1099 } ArkUI_BlurStyle;
1100 
1101 /**
1102  * @brief Enumerates the vertical alignment modes.
1103  *
1104  * @since 12
1105  */
1106 typedef enum {
1107     /** Top aligned. */
1108     ARKUI_VERTICAL_ALIGNMENT_TOP = 0,
1109     /** Center aligned. This is the default alignment mode. */
1110     ARKUI_VERTICAL_ALIGNMENT_CENTER,
1111     /** Bottom aligned. */
1112     ARKUI_VERTICAL_ALIGNMENT_BOTTOM,
1113 } ArkUI_VerticalAlignment;
1114 
1115 /**
1116  * @brief Enumerates the alignment mode in the horizontal direction.
1117  *
1118  * @since 12
1119  */
1120 typedef enum {
1121     /** Aligned with the start edge in the same direction as the language in use. */
1122     ARKUI_HORIZONTAL_ALIGNMENT_START = 0,
1123     /** Center aligned. This is the default alignment mode. */
1124     ARKUI_HORIZONTAL_ALIGNMENT_CENTER,
1125     /** Aligned with the end edge in the same direction as the language in use. */
1126     ARKUI_HORIZONTAL_ALIGNMENT_END,
1127 } ArkUI_HorizontalAlignment;
1128 
1129 /**
1130  * @brief Enumerates the display modes when the text is too long.
1131  *
1132  * @since 12
1133  */
1134 typedef enum {
1135     /** Extra-long text is not clipped. */
1136     ARKUI_TEXT_OVERFLOW_NONE = 0,
1137     /** Extra-long text is clipped. */
1138     ARKUI_TEXT_OVERFLOW_CLIP,
1139     /** An ellipsis (...) is used to represent text overflow. */
1140     ARKUI_TEXT_OVERFLOW_ELLIPSIS,
1141     /** Text continuously scrolls when text overflow occurs. */
1142     ARKUI_TEXT_OVERFLOW_MARQUEE,
1143 } ArkUI_TextOverflow;
1144 
1145 /**
1146  * @brief Enumerates the alignment mode of the image with the text.
1147  *
1148  * @since 12
1149  */
1150 typedef enum {
1151     /** The image is bottom aligned with the text baseline. */
1152     ARKUI_IMAGE_SPAN_ALIGNMENT_BASELINE = 0,
1153     /** The image is bottom aligned with the text. */
1154     ARKUI_IMAGE_SPAN_ALIGNMENT_BOTTOM,
1155     /** The image is centered aligned with the text. */
1156     ARKUI_IMAGE_SPAN_ALIGNMENT_CENTER,
1157     /** The image is top aligned with the text. */
1158     ARKUI_IMAGE_SPAN_ALIGNMENT_TOP,
1159 } ArkUI_ImageSpanAlignment;
1160 
1161 /**
1162  * @brief Defines how the image is resized to fit its container.
1163  *ImageSpanAlignment
1164  * @since 12
1165  */
1166 typedef enum {
1167     /** The image is scaled with its aspect ratio retained for the content to be completely displayed within the
1168      *  display boundaries. */
1169     ARKUI_OBJECT_FIT_CONTAIN = 0,
1170     /** The image is scaled with its aspect ratio retained for both sides to be greater than or equal to the
1171      *  display boundaries. */
1172     ARKUI_OBJECT_FIT_COVER,
1173     /** The image is scaled automatically to fit the display area. */
1174     ARKUI_OBJECT_FIT_AUTO,
1175     /** The image is scaled to fill the display area, and its aspect ratio is not retained. */
1176     ARKUI_OBJECT_FIT_FILL,
1177     /** The image content is displayed with its aspect ratio retained. The size is smaller than or equal to the
1178      *  original size. */
1179     ARKUI_OBJECT_FIT_SCALE_DOWN,
1180     /** The original size is retained. */
1181     ARKUI_OBJECT_FIT_NONE,
1182     /** Not resized, the image is aligned with the start edge of the top of the container. */
1183     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_TOP_START,
1184     /** Not resized, the image is horizontally centered at the top of the container. */
1185     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_TOP,
1186     /** Not resized, the image is aligned with the end edge at the top of the container. */
1187     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_TOP_END,
1188     /** Not resized, the image is vertically centered on the start edge of the container. */
1189     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_START,
1190     /** Not resized, the image is horizontally and vertically centered in the container. */
1191     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_CENTER,
1192     /** Not resized, the image is vertically centered on the end edge of the container. */
1193     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_END,
1194     /** Not resized, the image is aligned with the start edge at the bottom of the container. */
1195     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_BOTTOM_START,
1196     /** Not resized, the image is horizontally centered at the bottom of the container. */
1197     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_BOTTOM,
1198     /** Not resized, the image is aligned with the end edge at the bottom of the container. */
1199     ARKUI_OBJECT_FIT_NONE_AND_ALIGN_BOTTOM_END,
1200 } ArkUI_ObjectFit;
1201 
1202 /**
1203  * @brief Enumerates the image interpolation effect.
1204  *
1205  * @since 12
1206  */
1207 typedef enum {
1208     /** No image interpolation. */
1209     ARKUI_IMAGE_INTERPOLATION_NONE = 0,
1210     /** Low quality interpolation. */
1211     ARKUI_IMAGE_INTERPOLATION_LOW,
1212     /** Medium quality interpolation. */
1213     ARKUI_IMAGE_INTERPOLATION_MEDIUM,
1214     /** High quality interpolation. This mode produces scaled images of the highest possible quality. */
1215     ARKUI_IMAGE_INTERPOLATION_HIGH,
1216 } ArkUI_ImageInterpolation;
1217 
1218 /**
1219  * @brief Enumerates the blend modes.
1220  *
1221  * @since 12
1222  */
1223 typedef enum {
1224     /** The top image is superimposed on the bottom image without any blending. */
1225     ARKUI_BLEND_MODE_NONE = 0,
1226     /** The target pixels covered by the source pixels are erased by being turned to completely transparent. */
1227     ARKUI_BLEND_MODE_CLEAR,
1228     /** r = s: Only the source pixels are displayed. */
1229     ARKUI_BLEND_MODE_SRC,
1230     /** r = d: Only the target pixels are displayed. */
1231     ARKUI_BLEND_MODE_DST,
1232     /** r = s + (1 - sa) * d: The source pixels are blended based on opacity and cover the target pixels. */
1233     ARKUI_BLEND_MODE_SRC_OVER,
1234     /** r = d + (1 - da) * s: The target pixels are blended based on opacity and cover on the source pixels. */
1235     ARKUI_BLEND_MODE_DST_OVER,
1236     /** r = s * da: Only the part of the source pixels that overlap with the target pixels is displayed. */
1237     ARKUI_BLEND_MODE_SRC_IN,
1238     /** r = d * sa: Only the part of the target pixels that overlap with the source pixels is displayed. */
1239     ARKUI_BLEND_MODE_DST_IN,
1240     /** r = s * (1 - da): Only the part of the source pixels that do not overlap with the target pixels is displayed. */
1241     ARKUI_BLEND_MODE_SRC_OUT,
1242     /** r = d * (1 - sa): Only the part of the target pixels that do not overlap with the source pixels is displayed. */
1243     ARKUI_BLEND_MODE_DST_OUT,
1244     /** r = s * da + d * (1 - sa): The part of the source pixels that overlap with the target pixels is displayed and
1245      *  the part of the target pixels that do not overlap with the source pixels are displayed.
1246      */
1247     ARKUI_BLEND_MODE_SRC_ATOP,
1248     /** r = d * sa + s * (1 - da): The part of the target pixels that overlap with the source pixels and the part of
1249      *  the source pixels that do not overlap with the target pixels are displayed.
1250      */
1251     ARKUI_BLEND_MODE_DST_ATOP,
1252     /** r = s * (1 - da) + d * (1 - sa): Only the non-overlapping part between the source pixels and the target pixels
1253      * is displayed. */
1254     ARKUI_BLEND_MODE_XOR,
1255     /** r = min(s + d, 1): New pixels resulting from adding the source pixels to the target pixels are displayed. */
1256     ARKUI_BLEND_MODE_PLUS,
1257     /** r = s * d: New pixels resulting from multiplying the source pixels with the target pixels are displayed. */
1258     ARKUI_BLEND_MODE_MODULATE,
1259     /** r = s + d - s * d: Pixels are blended by adding the source pixels to the target pixels and subtracting the
1260      *  product of their multiplication. */
1261     ARKUI_BLEND_MODE_SCREEN,
1262     /** The MULTIPLY or SCREEN mode is used based on the target pixels. */
1263     ARKUI_BLEND_MODE_OVERLAY,
1264     /** rc = s + d - max(s * da, d * sa), ra = kSrcOver: When two colors overlap, whichever is darker is used. */
1265     ARKUI_BLEND_MODE_DARKEN,
1266     /** rc = s + d - min(s * da, d * sa), ra =
1267        kSrcOver: The final pixels are composed of the lightest values of pixels. */
1268     ARKUI_BLEND_MODE_LIGHTEN,
1269     /** The colors of the target pixels are lightened to reflect the source pixels. */
1270     ARKUI_BLEND_MODE_COLOR_DODGE,
1271     /** The colors of the target pixels are darkened to reflect the source pixels. */
1272     ARKUI_BLEND_MODE_COLOR_BURN,
1273     /** The MULTIPLY or SCREEN mode is used, depending on the source pixels. */
1274     ARKUI_BLEND_MODE_HARD_LIGHT,
1275     /** The LIGHTEN or DARKEN mode is used, depending on the source pixels. */
1276     ARKUI_BLEND_MODE_SOFT_LIGHT,
1277     /** rc = s + d - 2 * (min(s * da, d * sa)), ra =
1278        kSrcOver: The final pixel is the result of subtracting the darker of the two pixels (source and target) from
1279        the lighter one. */
1280     ARKUI_BLEND_MODE_DIFFERENCE,
1281     /** rc = s + d - two(s * d), ra = kSrcOver: The final pixel is similar to <b>DIFFERENCE</b>, but with less contrast.
1282      */
1283     ARKUI_BLEND_MODE_EXCLUSION,
1284     /** r = s * (1 - da) + d * (1 - sa) + s * d: The final pixel is the result of multiplying the source pixel
1285      *  by the target pixel.	 */
1286     ARKUI_BLEND_MODE_MULTIPLY,
1287     /** The resultant image is created with the luminance and saturation of the source image and the hue of the target
1288      *  image. */
1289     ARKUI_BLEND_MODE_HUE,
1290     /** The resultant image is created with the luminance and hue of the target image and the saturation of the source
1291      *  image. */
1292     ARKUI_BLEND_MODE_SATURATION,
1293     /** The resultant image is created with the saturation and hue of the source image and the luminance of the target
1294      *  image. */
1295     ARKUI_BLEND_MODE_COLOR,
1296     /** The resultant image is created with the saturation and hue of the target image and the luminance of the source
1297      *  image. */
1298     ARKUI_BLEND_MODE_LUMINOSITY,
1299 } ArkUI_BlendMode;
1300 
1301 /**
1302  * @brief Enumerates the modes in which components are laid out along the main axis of the container.
1303  *
1304  * @since 12
1305  */
1306 typedef enum {
1307     /** Components are arranged from left to right. */
1308     ARKUI_DIRECTION_LTR = 0,
1309     /** Components are arranged from right to left. */
1310     ARKUI_DIRECTION_RTL,
1311     /** The default layout direction is used. */
1312     ARKUI_DIRECTION_AUTO = 3,
1313 } ArkUI_Direction;
1314 
1315 /**
1316  * @brief Enumerates the modes in which components are laid out along the cross axis of the container.
1317  *
1318  * @since 12
1319  */
1320 typedef enum {
1321     /** The default configuration in the container is used. */
1322     ARKUI_ITEM_ALIGNMENT_AUTO = 0,
1323     /** The items in the container are aligned with the cross-start edge. */
1324     ARKUI_ITEM_ALIGNMENT_START,
1325     /** The items in the container are centered along the cross axis. */
1326     ARKUI_ITEM_ALIGNMENT_CENTER,
1327     /** The items in the container are aligned with the cross-end edge. */
1328     ARKUI_ITEM_ALIGNMENT_END,
1329     /** The items in the container are stretched and padded along the cross axis. */
1330     ARKUI_ITEM_ALIGNMENT_STRETCH,
1331     /** The items in the container are aligned in such a manner that their text baselines are aligned along the
1332      *  cross axis. */
1333     ARKUI_ITEM_ALIGNMENT_BASELINE,
1334 } ArkUI_ItemAlignment;
1335 
1336 /**
1337  * @brief Enumerates the foreground colors.
1338  *
1339  * @since 12
1340  */
1341 typedef enum {
1342     /** The foreground colors are the inverse of the component background colors. */
1343     ARKUI_COLOR_STRATEGY_INVERT = 0,
1344     /** The shadow colors of the component are the average color obtained from the component background shadow area. */
1345     ARKUI_COLOR_STRATEGY_AVERAGE,
1346     /** The shadow colors of the component are the primary color obtained from the component background shadow area. */
1347     ARKUI_COLOR_STRATEGY_PRIMARY,
1348 } ArkUI_ColorStrategy;
1349 
1350 /**
1351  * @brief Enumerates the vertical alignment modes.
1352  *
1353  * @since 12
1354  */
1355 typedef enum {
1356     /** The child components are aligned with the start edge of the main axis. */
1357     ARKUI_FLEX_ALIGNMENT_START = 1,
1358     /** The child components are aligned in the center of the main axis. */
1359     ARKUI_FLEX_ALIGNMENT_CENTER = 2,
1360     /** The child components are aligned with the end edge of the main axis. */
1361     ARKUI_FLEX_ALIGNMENT_END = 3,
1362     /** The child components are evenly distributed along the main axis. The space between any two adjacent components
1363      *  is the same. The first component is aligned with the main-start, and the last component is aligned with
1364      *  the main-end. */
1365     ARKUI_FLEX_ALIGNMENT_SPACE_BETWEEN = 6,
1366     /** The child components are evenly distributed along the main axis. The space between any two adjacent components
1367      *  is the same. The space between the first component and main-start, and that between the last component and
1368      *  cross-main are both half the size of the space between two adjacent components. */
1369     ARKUI_FLEX_ALIGNMENT_SPACE_AROUND = 7,
1370     /** The child components are evenly distributed along the main axis. The space between the first component
1371      *  and main-start, the space between the last component and main-end, and the space between any two adjacent
1372      *  components are the same. */
1373     ARKUI_FLEX_ALIGNMENT_SPACE_EVENLY = 8,
1374 } ArkUI_FlexAlignment;
1375 
1376 /**
1377  * @brief Enumerates the directions of the main axis in the flex container.
1378  *
1379  * @since 12
1380  */
1381 typedef enum {
1382     /** The child components are arranged in the same direction as the main axis runs along the rows. */
1383     ARKUI_FLEX_DIRECTION_ROW = 0,
1384     /** The child components are arranged in the same direction as the main axis runs down the columns. */
1385     ARKUI_FLEX_DIRECTION_COLUMN,
1386     /** The child components are arranged opposite to the <b>ROW</b> direction. */
1387     ARKUI_FLEX_DIRECTION_ROW_REVERSE,
1388     /** The child components are arranged opposite to the <b>COLUMN</b> direction. */
1389     ARKUI_FLEX_DIRECTION_COLUMN_REVERSE,
1390 } ArkUI_FlexDirection;
1391 
1392 /**
1393  * @brief Defines whether the flex container has a single line or multiple lines.
1394  *
1395  * @since 12
1396  */
1397 typedef enum {
1398     /** The child components in the flex container are arranged in a single line, and they cannot overflow. */
1399     ARKUI_FLEX_WRAP_NO_WRAP = 0,
1400     /** The child components in the flex container are arranged in multiple lines, and they may overflow. */
1401     ARKUI_FLEX_WRAP_WRAP,
1402     /** The child components in the flex container are reversely arranged in multiple lines, and they may overflow. */
1403     ARKUI_FLEX_WRAP_WRAP_REVERSE,
1404 } ArkUI_FlexWrap;
1405 
1406 /**
1407  * @brief Enumerates the visibility values.
1408  *
1409  * @since 12
1410  */
1411 typedef enum {
1412     /** The component is visible. */
1413     ARKUI_VISIBILITY_VISIBLE = 0,
1414     /** The component is hidden, and a placeholder is used for it in the layout. */
1415     ARKUI_VISIBILITY_HIDDEN,
1416     /** The component is hidden. It is not involved in the layout, and no placeholder is used for it. */
1417     ARKUI_VISIBILITY_NONE,
1418 } ArkUI_Visibility;
1419 
1420 /**
1421  * @brief Enumerates the alignment modes between the calendar picker and the entry component.
1422  *
1423  * @since 12
1424  */
1425 typedef enum {
1426     /** Left aligned. */
1427     ARKUI_CALENDAR_ALIGNMENT_START = 0,
1428     /** Center aligned. */
1429     ARKUI_CALENDAR_ALIGNMENT_CENTER,
1430     /** Right aligned. */
1431     ARKUI_CALENDAR_ALIGNMENT_END,
1432 } ArkUI_CalendarAlignment;
1433 
1434 /**
1435  * @brief Enumerates the mask types.
1436  *
1437  * @since 12
1438  */
1439 typedef enum {
1440     /** Rectangle. */
1441     ARKUI_MASK_TYPE_RECTANGLE = 0,
1442     /** Circle. */
1443     ARKUI_MASK_TYPE_CIRCLE,
1444     /** Ellipse. */
1445     ARKUI_MASK_TYPE_ELLIPSE,
1446     /** Path. */
1447     ARKUI_MASK_TYPE_PATH,
1448     /** Progress indicator. */
1449     ARKUI_MASK_TYPE_PROGRESS,
1450 } ArkUI_MaskType;
1451 
1452 /**
1453  * @brief Enumerates the clipping region types.
1454  *
1455  * @since 12
1456  */
1457 typedef enum {
1458     /** Rectangle. */
1459     ARKUI_CLIP_TYPE_RECTANGLE = 0,
1460     /** Circle. */
1461     ARKUI_CLIP_TYPE_CIRCLE,
1462     /** Ellipse. */
1463     ARKUI_CLIP_TYPE_ELLIPSE,
1464     /** Path. */
1465     ARKUI_CLIP_TYPE_PATH,
1466 } ArkUI_ClipType;
1467 
1468 /**
1469  * @brief Defines the gradient color stop structure.
1470  *
1471  * @since 12
1472  */
1473 typedef struct {
1474     /** Color array. */
1475     const uint32_t* colors;
1476     /** Position array. */
1477     float* stops;
1478     /** Length array. */
1479     int size;
1480 } ArkUI_ColorStop;
1481 
1482 /**
1483  * @brief Enumerates the custom shapes.
1484  *
1485  * @since 12
1486  */
1487 typedef enum {
1488     /** Rectangle. */
1489     ARKUI_SHAPE_TYPE_RECTANGLE = 0,
1490     /** Circle. */
1491     ARKUI_SHAPE_TYPE_CIRCLE,
1492     /** Ellipse. */
1493     ARKUI_SHAPE_TYPE_ELLIPSE,
1494     /** Path. */
1495     ARKUI_SHAPE_TYPE_PATH,
1496 } ArkUI_ShapeType;
1497 
1498 /**
1499  * @brief Enumerates the gradient directions.
1500  *
1501  * @since 12
1502  */
1503 typedef enum {
1504     /** From right to left. */
1505     ARKUI_LINEAR_GRADIENT_DIRECTION_LEFT = 0,
1506     /** From bottom to top. */
1507     ARKUI_LINEAR_GRADIENT_DIRECTION_TOP,
1508     /** From left to right. */
1509     ARKUI_LINEAR_GRADIENT_DIRECTION_RIGHT,
1510     /** From top to bottom. */
1511     ARKUI_LINEAR_GRADIENT_DIRECTION_BOTTOM,
1512     /** From lower right to upper left. */
1513     ARKUI_LINEAR_GRADIENT_DIRECTION_LEFT_TOP,
1514     /** From upper right to lower left. */
1515     ARKUI_LINEAR_GRADIENT_DIRECTION_LEFT_BOTTOM,
1516     /** From lower left to upper right. */
1517     ARKUI_LINEAR_GRADIENT_DIRECTION_RIGHT_TOP,
1518     /** From upper left to lower right. */
1519     ARKUI_LINEAR_GRADIENT_DIRECTION_RIGHT_BOTTOM,
1520     /** No gradient. */
1521     ARKUI_LINEAR_GRADIENT_DIRECTION_NONE,
1522     /** Custom direction. */
1523     ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM,
1524 } ArkUI_LinearGradientDirection;
1525 
1526 /**
1527  * @brief Enumerates the word break rules.
1528  *
1529  * @since 12
1530  */
1531 typedef enum {
1532     /** Word breaks can occur between any two characters for Chinese, Japanese, and Korean (CJK) text, but can occur
1533      *  only at a space character for non-CJK text (such as English). */
1534     ARKUI_WORD_BREAK_NORMAL = 0,
1535     /** Word breaks can occur between any two characters for non-CJK text. CJK text behavior is the same as for
1536      *  <b>NORMAL</b>. */
1537     ARKUI_WORD_BREAK_BREAK_ALL,
1538     /** This option has the same effect as <b>BREAK_ALL</b> for non-CJK text, except that if it preferentially wraps
1539      *  lines at appropriate characters (for example, spaces) whenever possible.
1540         CJK text behavior is the same as for <b>NORMAL</b>. */
1541     ARKUI_WORD_BREAK_BREAK_WORD,
1542 } ArkUI_WordBreak;
1543 
1544 /**
1545  * @brief Enumerates the ellipsis positions.
1546  *
1547  * @since 12
1548  */
1549 typedef enum {
1550     /** An ellipsis is used at the start of the line of text. */
1551     ARKUI_ELLIPSIS_MODE_START = 0,
1552     /** An ellipsis is used at the center of the line of text. */
1553     ARKUI_ELLIPSIS_MODE_CENTER,
1554     /** An ellipsis is used at the end of the line of text. */
1555     ARKUI_ELLIPSIS_MODE_END,
1556 } ArkUI_EllipsisMode;
1557 
1558 /**
1559  * @brief Enumerates the image rendering modes.
1560  *
1561  * @since 12
1562  */
1563 typedef enum {
1564     /** Render image pixels as they are in the original source image. */
1565     ARKUI_IMAGE_RENDER_MODE_ORIGINAL = 0,
1566     /** Render image pixels to create a monochrome template image. */
1567     ARKUI_IMAGE_RENDER_MODE_TEMPLATE,
1568 } ArkUI_ImageRenderMode;
1569 
1570 /**
1571  * @brief Enumerates the slide-in and slide-out positions of the component from the screen edge during transition.
1572  *
1573  * @since 12
1574  */
1575 typedef enum {
1576     /** Top edge of the window. */
1577     ARKUI_TRANSITION_EDGE_TOP = 0,
1578     /** Bottom edge of the window. */
1579     ARKUI_TRANSITION_EDGE_BOTTOM,
1580     /** Left edge of the window. */
1581     ARKUI_TRANSITION_EDGE_START,
1582     /** Right edge of the window. */
1583     ARKUI_TRANSITION_EDGE_END,
1584 } ArkUI_TransitionEdge;
1585 
1586 /**
1587  * @brief Defines how the specified blend mode is applied.
1588  *
1589  * @since 12
1590  */
1591 typedef enum {
1592     /** The content of the view is blended in sequence on the target image. */
1593     BLEND_APPLY_TYPE_FAST = 0,
1594     /** The content of the component and its child components are drawn on the offscreen canvas, and then blended with
1595      *  the existing content on the canvas. */
1596     BLEND_APPLY_TYPE_OFFSCREEN,
1597 } ArkUI_BlendApplyType;
1598 
1599 /**
1600  * @brief Defines a mask area.
1601  *
1602  * @since 12
1603  */
1604 typedef struct {
1605     /** X coordinate of the mask area. */
1606     float x;
1607     /** Y coordinate of the mask area. */
1608     float y;
1609     /** Width of the mask area. */
1610     float width;
1611     /** Height of the mask area. */
1612     float height;
1613 } ArkUI_Rect;
1614 
1615 /**
1616  * @brief Describes the width and height of a component.
1617  *
1618  * @since 12
1619  */
1620 typedef struct {
1621     /** Width, in px. */
1622     int32_t width;
1623     /** Height, in px. */
1624     int32_t height;
1625 } ArkUI_IntSize;
1626 
1627 /**
1628  * @brief Describes the position of a component.
1629  *
1630  * @since 12
1631  */
1632 typedef struct {
1633     /** Horizontal coordinate, in px. */
1634     int32_t x;
1635     /** Vertical coordinate, in px. */
1636     int32_t y;
1637 } ArkUI_IntOffset;
1638 
1639 /**
1640  * @brief Enumerates the animation onFinish callback types.
1641  *
1642  * @since 12
1643  */
1644 typedef enum {
1645     /** The callback is invoked when the entire animation is removed once it has finished. */
1646     ARKUI_FINISH_CALLBACK_REMOVED = 0,
1647     /** The callback is invoked when the animation logically enters the falling state, though it may still be in its
1648       * long tail state. */
1649     ARKUI_FINISH_CALLBACK_LOGICALLY,
1650 } ArkUI_FinishCallbackType;
1651 
1652 /**
1653  * @brief Enumerates the alignment modes of items along the cross axis.
1654   *
1655  * @since 12
1656  */
1657 typedef enum {
1658     /** The list items are packed toward the start edge of the list container along the cross axis. */
1659     ARKUI_LIST_ITEM_ALIGNMENT_START = 0,
1660     /** The list items are centered in the list container along the cross axis. */
1661     ARKUI_LIST_ITEM_ALIGNMENT_CENTER,
1662     /** The list items are packed toward the end edge of the list container along the cross axis. */
1663     ARKUI_LIST_ITEM_ALIGNMENT_END,
1664 } ArkUI_ListItemAlignment;
1665 
1666 /**
1667   * @brief defines the direction of the barrier line.
1668   *
1669   * @since 12
1670   */
1671 typedef enum {
1672     /** The barrier is the leftmost of all its referencedIds. */
1673     ARKUI_BARRIER_DIRECTION_START = 0,
1674     /** The barrier is on the rightmost side of all its referencedIds. */
1675     ARKUI_BARRIER_DIRECTION_END,
1676     /** The barrier is at the top of all its referencedIds. */
1677     ARKUI_BARRIER_DIRECTION_TOP,
1678     /** The barrier is at the bottom of all its referencedIds. */
1679     ARKUI_BARRIER_DIRECTION_BOTTOM
1680 } ArkUI_BarrierDirection;
1681 
1682 /**
1683   * @brief defines the style of the chain.
1684   *
1685   * @since 12
1686   */
1687 typedef enum {
1688     /** Components are evenly distributed among constraint anchor points. */
1689     ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_SPREAD = 0,
1690     /** Except for the first and last two sub-components,
1691       * other components are evenly distributed between the constraint anchor points. */
1692     ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_SPREAD_INSIDE,
1693     /** No gaps in subcomponents within the chain. */
1694     ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_PACKED,
1695 } ArkUI_RelativeLayoutChainStyle;
1696 
1697 /**
1698  * @brief Describes the margins of a component.
1699  *
1700  * @since 12
1701  */
1702 typedef struct {
1703     /** Top margin, in vp. */
1704     float top;
1705     /** Right margin, in vp. */
1706     float right;
1707     /** Bottom margin, in vp. */
1708     float bottom;
1709     /** Left margin, in vp. */
1710     float left;
1711 } ArkUI_Margin;
1712 
1713 /**
1714  * @brief Enumerates the component units.
1715  *
1716  * @since 12
1717  */
1718 typedef enum {
1719     /** Default, which is fp for fonts and vp for non-fonts. */
1720     ARKUI_LENGTH_METRIC_UNIT_DEFAULT = -1,
1721     /** px. */
1722     ARKUI_LENGTH_METRIC_UNIT_PX = 0,
1723     /** vp. */
1724     ARKUI_LENGTH_METRIC_UNIT_VP,
1725     /** fp. */
1726     ARKUI_LENGTH_METRIC_UNIT_FP
1727 } ArkUI_LengthMetricUnit;
1728 
1729 /**
1730  * @brief Enumerates the render fit.
1731  *
1732  * @since 12
1733  */
1734 typedef enum {
1735     /** Maintains the content size of the animation's final state,
1736       * and the content is always centered with the component.*/
1737     ARKUI_RENDER_FIT_CENTER = 0,
1738     /** Maintains the content size of the animation's final state,
1739       * and the content is always aligned with the top center of the component. */
1740     ARKUI_RENDER_FIT_TOP,
1741     /** Maintains the content size of the animation's final state,
1742       * and the content is always aligned with the bottom center of the component. */
1743     ARKUI_RENDER_FIT_BOTTOM,
1744     /** Maintains the content size of the animation's final state,
1745       * and the content is always aligned to the left of the component. */
1746     ARKUI_RENDER_FIT_LEFT,
1747     /** Maintains the content size of the animation's final state,
1748       * and the content is always right-aligned with the component. */
1749     ARKUI_RENDER_FIT_RIGHT,
1750     /** Maintains the content size of the animation's final state,
1751       * and the content is always aligned with the top left corner of the component. */
1752     ARKUI_RENDER_FIT_TOP_LEFT,
1753     /** Keep the content size of the animation final state,
1754       * and the content is always aligned with the upper right corner of the component. */
1755     ARKUI_RENDER_FIT_TOP_RIGHT,
1756     /** Keep the content size of the animation final state,
1757       * and the content always aligns with the lower-left corner of the component. */
1758     ARKUI_RENDER_FIT_BOTTOM_LEFT,
1759     /** Keep the content size of the animation final state,
1760       *and the content always aligns with the lower-right corner of the component. */
1761     ARKUI_RENDER_FIT_BOTTOM_RIGHT,
1762     /** The aspect ratio of the animation's final state content is not considered,
1763       *and the content is always scaled to the size of the component. */
1764     ARKUI_RENDER_FIT_RESIZE_FILL,
1765     /** Reduce or enlarge the aspect ratio of the animation final state content,
1766       * so that the content is fully displayed in the component,
1767       * and keep the center aligned with the component. */
1768     ARKUI_RENDER_FIT_RESIZE_CONTAIN,
1769     /** Keep the aspect ratio of the animation final state content to reduce or enlarge,
1770       * so that the content is fully displayed in the component.
1771       * When there is left over in the broad direction of the component,
1772       * the content is aligned to the left of the component,
1773       * and when there is left over in the high direction of the component,
1774       * the content is aligned to the top of the component. */
1775     ARKUI_RENDER_FIT_RESIZE_CONTAIN_TOP_LEFT,
1776     /** Keep the aspect ratio of the animation final state content to reduce or enlarge,
1777       * so that the content is fully displayed in the component.
1778       * When there is left in the wide direction of the component,
1779       * the content is aligned with the component on the right.
1780       * When there is left in the high direction of the component,
1781       * the content is aligned with the component on the bottom. */
1782     ARKUI_RENDER_FIT_RESIZE_CONTAIN_BOTTOM_RIGHT,
1783     /** Keep the aspect ratio of the animation final state content reduced or enlarged,
1784       * so that both sides of the content are greater than or equal to both sides of the component,
1785       * and keep the center aligned with the component to display the middle part of the content. */
1786     ARKUI_RENDER_FIT_RESIZE_COVER,
1787     /** Keep the aspect ratio of the final content of the animation reduced or enlarged
1788       * so that both sides of the content are exactly greater than or equal to both sides of the component.
1789       * When the content width is left, the content is aligned to the left of the component,
1790       * and the left portion of the content is displayed. When the content is left in the high direction,
1791       * the content and the component remain top aligned, showing the top side of the content. */
1792     ARKUI_RENDER_FIT_RESIZE_COVER_TOP_LEFT,
1793     /** Keep the aspect ratio of the final content of the animation reduced or enlarged so
1794       * that both sides of the content are exactly greater than or equal to both sides of the component.
1795       * When the content width is left, the content and the component remain right aligned,
1796       * and the right part of the content is displayed. When the content is left in the high direction,
1797       * the content and the component remain aligned at the bottom,
1798       * and the bottom part of the content is displayed. */
1799     ARKUI_RENDER_FIT_RESIZE_COVER_BOTTOM_RIGHT
1800 } ArkUI_RenderFit;
1801 
1802 /**
1803  * @brief Enumerates the button types.
1804  *
1805  * @since 12
1806  */
1807 typedef enum {
1808     /** Normal button (without rounded corners by default). */
1809     ARKUI_BUTTON_TYPE_NORMAL = 0,
1810     /** Capsule-type button (the round corner is half of the height by default). */
1811     ARKUI_BUTTON_TYPE_CAPSULE,
1812     /** Circle button. */
1813     ARKUI_BUTTON_TYPE_CIRCLE,
1814 } ArkUI_ButtonType;
1815 
1816 /**
1817  * @brief Enumerates the autofill types.
1818  *
1819  * @since 12
1820  */
1821 typedef enum {
1822     /** Username. Password Vault, when enabled, can automatically save and fill in usernames. */
1823     ARKUI_TEXTINPUT_CONTENT_TYPE_USER_NAME = 0,
1824     /** Password. Password Vault, when enabled, can automatically save and fill in passwords. */
1825     ARKUI_TEXTINPUT_CONTENT_TYPE_PASSWORD,
1826     /** New password. Password Vault, when enabled, can automatically generate a new password. */
1827     ARKUI_TEXTINPUT_CONTENT_TYPE_NEW_PASSWORD,
1828     /** Full street address. The scenario-based autofill feature, when enabled, can automatically save and fill in full
1829      *  street addresses. */
1830     ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_STREET_ADDRESS,
1831     /** House number. The scenario-based autofill feature, when enabled, can automatically save and fill in house
1832      *  numbers. */
1833     ARKUI_TEXTINPUT_CONTENT_TYPE_HOUSE_NUMBER,
1834     /** District and county. The scenario-based autofill feature, when enabled, can automatically save and fill in
1835      *  districts and counties. */
1836     ARKUI_TEXTINPUT_CONTENT_TYPE_DISTRICT_ADDRESS,
1837     /** City. The scenario-based autofill feature, when enabled, can automatically save and fill in cities. */
1838     ARKUI_TEXTINPUT_CONTENT_TYPE_CITY_ADDRESS,
1839     /** Province. The scenario-based autofill feature, when enabled, can automatically save and fill in provinces. */
1840     ARKUI_TEXTINPUT_CONTENT_TYPE_PROVINCE_ADDRESS,
1841     /** Country. The scenario-based autofill feature, when enabled, can automatically save and fill in countries. */
1842     ARKUI_TEXTINPUT_CONTENT_TYPE_COUNTRY_ADDRESS,
1843     /** Full name. The scenario-based autofill feature, when enabled, can automatically save and fill in full names. */
1844     ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_FULL_NAME,
1845     /** Last name. The scenario-based autofill feature, when enabled, can automatically save and fill in last names. */
1846     ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_LAST_NAME,
1847     /** First name. The scenario-based autofill feature, when enabled, can automatically save and fill in first names.
1848      */
1849     ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_FIRST_NAME,
1850     /** Phone number. The scenario-based autofill feature, when enabled, can automatically save and fill in phone
1851      *  numbers. */
1852     ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_NUMBER,
1853     /** Country code. The scenario-based autofill feature, when enabled, can automatically save and fill in country
1854      *  codes. */
1855     ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_COUNTRY_CODE,
1856     /** Phone number with country code. The scenario-based autofill feature, when enabled, can automatically save and
1857      *  fill in phone numbers with country codes. */
1858     ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_PHONE_NUMBER,
1859     /** Email address. The scenario-based autofill feature, when enabled, can automatically save and fill in email
1860      *  addresses. */
1861     ARKUI_TEXTINPUT_CONTENT_EMAIL_ADDRESS,
1862     /** Bank card number. The scenario-based autofill feature, when enabled, can automatically save and fill in bank
1863      *  card numbers. */
1864     ARKUI_TEXTINPUT_CONTENT_TYPE_BANK_CARD_NUMBER,
1865     /** ID card number. The scenario-based autofill feature, when enabled, can automatically save and fill in ID card
1866      *  numbers. */
1867     ARKUI_TEXTINPUT_CONTENT_TYPE_ID_CARD_NUMBER,
1868     /** Nickname. The scenario-based autofill feature, when enabled, can automatically save and fill in nicknames. */
1869     ARKUI_TEXTINPUT_CONTENT_TYPE_NICKNAME,
1870     /** Address information without street address. The scenario-based autofill feature, when enabled, can automatically
1871      *  save and fill in address information without street addresses. */
1872     ARKUI_TEXTINPUT_CONTENT_TYPE_DETAIL_INFO_WITHOUT_STREET,
1873     /** Standard address. The scenario-based autofill feature, when enabled, can automatically save and fill in standard
1874      *  addresses. */
1875     ARKUI_TEXTINPUT_CONTENT_TYPE_FORMAT_ADDRESS,
1876 } ArkUI_TextInputContentType;
1877 
1878 /**
1879  * @brief Defines the text input style.
1880  *
1881  * @since 12
1882  */
1883 typedef enum {
1884     /** Default style. The caret width is fixed at 1.5 vp, and the caret height is subject to the background height and
1885      *  font size of the selected text. */
1886     ARKUI_TEXTINPUT_STYLE_DEFAULT = 0,
1887     /** Inline input style. The background height of the selected text is the same as the height of the text box. */
1888     ARKUI_TEXTINPUT_STYLE_INLINE
1889 } ArkUI_TextInputStyle;
1890 
1891 /**
1892  * @brief Defines the keyboard style of input box
1893  *
1894  * @since 15
1895  */
1896 typedef enum {
1897     /**
1898      * Default appearance mode, won't adopt immersive styles.
1899      * @since 15
1900      */
1901     ARKUI_KEYBOARD_APPEARANCE_NONE_IMMERSIVE = 0,
1902     /**
1903      * Immersive mode.
1904      * @since 15
1905      */
1906     ARKUI_KEYBOARD_APPEARANCE_IMMERSIVE = 1,
1907     /**
1908      * Light immersive style.
1909      * @since 15
1910      */
1911     ARKUI_KEYBOARD_APPEARANCE_LIGHT_IMMERSIVE = 2,
1912     /**
1913      * Dark immersive style.
1914      * @since 15
1915      */
1916     ARKUI_KEYBOARD_APPEARANCE_DARK_IMMERSIVE = 3,
1917 } ArkUI_KeyboardAppearance;
1918 
1919 /**
1920  * @brief Defines the entity type for text recognition.
1921  *
1922  * @since 12
1923  */
1924 typedef enum {
1925     /** Phone Number.*/
1926     ARKUI_TEXT_DATA_DETECTOR_TYPE_PHONE_NUMBER = 0,
1927     /** Link. */
1928     ARKUI_TEXT_DATA_DETECTOR_TYPE_URL,
1929     /** Mailbox. */
1930     ARKUI_TEXT_DATA_DETECTOR_TYPE_EMAIL,
1931     /** Address. */
1932     ARKUI_TEXT_DATA_DETECTOR_TYPE_ADDRESS,
1933 } ArkUI_TextDataDetectorType;
1934 
1935 /**
1936  * @brief Define the navigation indicator type of the swiper.
1937  *
1938  * @since 12
1939  */
1940 typedef enum {
1941     /** dot type. */
1942     ARKUI_SWIPER_INDICATOR_TYPE_DOT,
1943     /** digit type. */
1944     ARKUI_SWIPER_INDICATOR_TYPE_DIGIT,
1945 } ArkUI_SwiperIndicatorType;
1946 
1947 /**
1948  * @brief Define the pattern of element arrangement in the main axis direction of the Swiper component.
1949  *
1950  * @since 12
1951  */
1952 typedef enum {
1953     /** In the folded state, when the ListItem slides in the opposite direction to the main axis,
1954      * the operation item is hidden.*/
1955     ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_COLLAPSED = 0,
1956     /** In the folded state, when the ListItem slides in the opposite direction to the spindle,
1957      * the operation item is displayed.*/
1958     ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_EXPANDED,
1959     /** Long distance state, the state of deleting a ListItem after it enters the long distance deletion area.*/
1960     ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_ACTIONING,
1961 } ArkUI_ListItemSwipeActionState;
1962 
1963 /**
1964  * @brief Define the explicit and implicit mode of the SwipeAction method for the Listitem component.
1965  *
1966  * @since 12
1967  */
1968 typedef enum {
1969     /** The ListItem can continue to be scratched after the distance exceeds the size of the scratched component.*/
1970     ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_SPRING = 0,
1971     /** The sliding distance of the ListItem cannot exceed the size of the scratched component.*/
1972     ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_NONE,
1973 } ArkUI_ListItemSwipeEdgeEffect;
1974 
1975 /**
1976  * @brief Define error code enumeration values.
1977  *
1978  * @since 12
1979  */
1980 typedef enum {
1981     /** @error No errors. */
1982     ARKUI_ERROR_CODE_NO_ERROR = 0,
1983     /** @error Parameter error. */
1984     ARKUI_ERROR_CODE_PARAM_INVALID = 401,
1985     /**
1986      * @error Internal error occurs, such as failure occurs because of the internal environment error,
1987      * or operation failed because of the internal execution failed.
1988      * @since 15
1989      */
1990     ARKUI_ERROR_CODE_INTERNAL_ERROR = 100001,
1991     /** @error The component does not support specific properties or events. */
1992     ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED = 106102,
1993     /** @error The corresponding operation does not support nodes created by ArkTS. */
1994     ARKUI_ERROR_CODE_ARKTS_NODE_NOT_SUPPORTED = 106103,
1995     /** @error The lazy loading adapter is not bound to the component. */
1996     ARKUI_ERROR_CODE_ADAPTER_NOT_BOUND = 106104,
1997     /** @error The adapter already exists. */
1998     ARKUI_ERROR_CODE_ADAPTER_EXIST = 106105,
1999     /** @error The corresponding node already has a child node and cannot add an adapter. */
2000     ARKUI_ERROR_CODE_CHILD_NODE_EXIST = 106106,
2001     /** The parameter length in the parameter event exceeds the limit. */
2002     ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INDEX_OUT_OF_RANGE = 106107,
2003     /** The data does not exist in the component event. */
2004     ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID = 106108,
2005     /** The component event does not support return values. */
2006     ARKUI_ERROR_CODE_NODE_EVENT_NO_RETURN = 106109,
2007     /** The index value is invalid. */
2008     ARKUI_ERROR_CODE_NODE_INDEX_INVALID = 106200,
2009     /**  Failed to query route navigation information. */
2010     ARKUI_ERROR_CODE_GET_INFO_FAILED = 106201,
2011     /** The buffer size is not large enough. */
2012     ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR = 106202,
2013     /**
2014      * @error The node is not on main tree.
2015      * @since 15
2016      */
2017     ARKUI_ERROR_CODE_NODE_NOT_ON_MAIN_TREE = 106203,
2018     /**
2019      * @error The node requesting focus is not focusable.
2020      * @since 15
2021      */
2022     ARKUI_ERROR_CODE_FOCUS_NON_FOCUSABLE = 150001,
2023     /**
2024      * @error The node requesting focus has unfocusable ancestor.
2025      * @since 15
2026      */
2027     ARKUI_ERROR_CODE_FOCUS_NON_FOCUSABLE_ANCESTOR = 150002,
2028     /**
2029      * @error The node requesting focus does not exists.
2030      * @since 15
2031      */
2032     ARKUI_ERROR_CODE_FOCUS_NON_EXISTENT = 150003,
2033     /**
2034      * @error The snapshot taking is timeout.
2035      * @since 15
2036      */
2037     ARKUI_ERROR_CODE_COMPONENT_SNAPSHOT_TIMEOUT = 160002,
2038     /** The component is not a scroll container. */
2039     ARKUI_ERROR_CODE_NON_SCROLLABLE_CONTAINER = 180001,
2040     /** The buffer is not large enough. */
2041     ARKUI_ERROR_CODE_BUFFER_SIZE_NOT_ENOUGH = 180002,
2042     /**
2043      * @error The event is not a clone event.
2044      * @since 15
2045      */
2046     ARKUI_ERROR_CODE_NOT_CLONED_POINTER_EVENT = 180003,
2047     /**
2048      * @error The component status is abnormal.
2049      * @since 15
2050      */
2051     ARKUI_ERROR_CODE_POST_CLONED_COMPONENT_STATUS_ABNORMAL = 180004,
2052     /**
2053      * @error No component hit to respond to the event.
2054      * @since 15
2055      */
2056     ARKUI_ERROR_CODE_POST_CLONED_NO_COMPONENT_HIT_TO_RESPOND_TO_THE_EVENT = 180005,
2057     /**
2058      * @error invalid styled string.
2059      * @since 14
2060      */
2061     ARKUI_ERROR_CODE_INVALID_STYLED_STRING = 180101,
2062 } ArkUI_ErrorCode;
2063 
2064 /**
2065  * @brief Defines the playback status for the image animator.
2066  *
2067  * @since 12
2068 */
2069 typedef enum {
2070     /** The animation is in the initial state. */
2071     ARKUI_ANIMATION_STATUS_INITIAL,
2072     /** The animation is being played. */
2073     ARKUI_ANIMATION_STATUS_RUNNING,
2074     /** The animation is paused. */
2075     ARKUI_ANIMATION_STATUS_PAUSED,
2076     /** The animation is stopped. */
2077     ARKUI_ANIMATION_STATUS_STOPPED,
2078 } ArkUI_AnimationStatus;
2079 
2080 /**
2081  * @brief Defines the status before and after execution of the animation in the current playback direction.
2082  *
2083  * @since 12
2084 */
2085 typedef enum {
2086     /** Before execution, the animation does not apply any styles to the target component.
2087      * After execution, the animation restores the target component to its default state. */
2088     ARKUI_ANIMATION_FILL_MODE_NONE,
2089     /** The target component retains the state set by the last keyframe encountered
2090      * during execution of the animation. */
2091     ARKUI_ANIMATION_FILL_MODE_FORWARDS,
2092     /** The animation applies the values defined in the first relevant keyframe once it is applied to
2093      * the target component, and retains the values during the period set by delay. */
2094     ARKUI_ANIMATION_FILL_MODE_BACKWARDS,
2095     /** The animation follows the rules for both Forwards and Backwards,
2096      * extending the animation attributes in both directions. */
2097     ARKUI_ANIMATION_FILL_MODE_BOTH,
2098 } ArkUI_AnimationFillMode;
2099 
2100 /**
2101  * @brief Defines the state type for the accessibility checkbox.
2102  *
2103  * @since 12
2104  */
2105 typedef enum {
2106     /** The Checkbox unchecked. */
2107     ARKUI_ACCESSIBILITY_UNCHECKED = 0,
2108     /** The Checkbox checked. */
2109     ARKUI_ACCESSIBILITY_CHECKED,
2110 } ArkUI_AccessibilityCheckedState;
2111 
2112 /**
2113 
2114 /**
2115  * @brief Enumerates the animation playback modes.
2116  *
2117  * @since 12
2118  */
2119 typedef enum {
2120     /** The animation plays in forward loop mode. */
2121     ARKUI_ANIMATION_DIRECTION_NORMAL = 0,
2122     /** The animation plays in reverse loop mode. */
2123     ARKUI_ANIMATION_DIRECTION_REVERSE,
2124     /** The animation plays in alternating loop mode. When the animation is played for an odd number of times, the
2125      *  playback is in forward direction. When the animation is played for an even number of times, the playback is in
2126      *  reverse direction. */
2127     ARKUI_ANIMATION_DIRECTION_ALTERNATE,
2128     /** The animation plays in reverse alternating loop mode. When the animation is played for an odd number of times,
2129      *  the playback is in reverse direction. When the animation is played for an even number of times, the playback is
2130      *  in forward direction. */
2131     ARKUI_ANIMATION_DIRECTION_ALTERNATE_REVERSE,
2132 } ArkUI_AnimationDirection;
2133 
2134 /**
2135  * @brief Define the rolling source enumeration value.
2136  *
2137  * @since 12
2138 */
2139 typedef enum {
2140     /** Finger drag. */
2141     ARKUI_SCROLL_SOURCE_DRAG = 0,
2142     /** Inertial roll after finger drag. */
2143     ARKUI_SCROLL_SOURCE_FLING,
2144     /** Execute the EdgeEffect.Spring edge effect when crossing the boundary.*/
2145     ARKUI_SCROLL_SOURCE_EDGE_EFFECT,
2146     /** Other user input other than dragging, such as mouse wheel, keyboard events, etc.*/
2147     ARKUI_SCROLL_SOURCE_OTHER_USER_INPUT,
2148     /** Drag the scroll bar.*/
2149     ARKUI_SCROLL_SOURCE_SCROLL_BAR,
2150     /** Inertia scrolling after dragging the scroll bar.*/
2151     ARKUI_SCROLL_SOURCE_SCROLL_BAR_FLING,
2152     /** The scroll controller causes unanimated scrolling.*/
2153     ARKUI_SCROLL_SOURCE_SCROLLER,
2154     /** The scroll controller causes the scroll to drive the painting.*/
2155     ARKUI_SCROLL_SOURCE_ANIMATION,
2156 } ArkUI_ScrollSource;
2157 
2158 /**
2159  * @brief Define accessible action types.
2160  *
2161  * @since 12
2162  */
2163 typedef enum {
2164     /** click action. */
2165     ARKUI_ACCESSIBILITY_ACTION_CLICK = 1 << 0,
2166     /** long click action. */
2167     ARKUI_ACCESSIBILITY_ACTION_LONG_CLICK = 1 << 1,
2168     /** cut action. */
2169     ARKUI_ACCESSIBILITY_ACTION_CUT = 1 << 2,
2170     /** copy action. */
2171     ARKUI_ACCESSIBILITY_ACTION_COPY = 1 << 3,
2172     /** paste action. */
2173     ARKUI_ACCESSIBILITY_ACTION_PASTE = 1 << 4,
2174 } ArkUI_AccessibilityActionType;
2175 
2176 /**
2177  * @brief Defines the translation options for component transition.
2178  *
2179  * @since 12
2180  */
2181 typedef struct {
2182     /** Translation distance along the x-axis. */
2183     float x;
2184     /** Translation distance along the y-axis. */
2185     float y;
2186     /** Translation distance along the z-axis. */
2187     float z;
2188 } ArkUI_TranslationOptions;
2189 
2190 /**
2191  * @brief Defines the scaling options for component transition.
2192  *
2193  * @since 12
2194  */
2195 typedef struct {
2196     /** Scale ratio along the x-axis. */
2197     float x;
2198     /** Scale ratio along the y-axis. */
2199     float y;
2200     /** Scale factor along the z-axis (not effective for the current 2D graphics). */
2201     float z;
2202     /** X coordinate of the center point. */
2203     float centerX;
2204     /** Y coordinate of the center point. */
2205     float centerY;
2206 } ArkUI_ScaleOptions;
2207 
2208 /**
2209  * @brief Defines the rotation options for component transition.
2210  *
2211  * @since 12
2212  */
2213 typedef struct {
2214     /** X-component of the rotation vector. */
2215     float x;
2216     /** Y-component of the rotation vector. */
2217     float y;
2218     /** Z-component of the rotation vector. */
2219     float z;
2220     /** Rotation angle. */
2221     float angle;
2222     /** X coordinate of the center point. */
2223     float centerX;
2224     /** Y coordinate of the center point. */
2225     float centerY;
2226     /** Z-axis anchor, that is, the z-component of the 3D rotation center point. */
2227     float centerZ;
2228     /** Distance from the user to the z=0 plane. */
2229     float perspective;
2230 } ArkUI_RotationOptions;
2231 
2232 /**
2233  * @brief Defines a struct for the measurement information of a custom span.
2234  *
2235  * @since 12
2236  */
2237 typedef struct ArkUI_CustomSpanMeasureInfo ArkUI_CustomSpanMeasureInfo;
2238 
2239 /**
2240  * @brief Defines a struct for the measurement metrics of a custom span.
2241  *
2242  * @since 12
2243  */
2244 typedef struct ArkUI_CustomSpanMetrics ArkUI_CustomSpanMetrics;
2245 
2246 /**
2247  * @brief Defines a struct for the drawing information of a custom span.
2248  *
2249  * @since 12
2250  */
2251 typedef struct ArkUI_CustomSpanDrawInfo ArkUI_CustomSpanDrawInfo;
2252 
2253 /**
2254  * @brief Defines the state of the NavDestination component.
2255  *
2256  * @since 12
2257  */
2258 typedef enum {
2259     /** The NavDestination show. */
2260     ARKUI_NAV_DESTINATION_STATE_ON_SHOW = 0,
2261     /** The NavDestination hide. */
2262     ARKUI_NAV_DESTINATION_STATE_ON_HIDE = 1,
2263     /** The NavDestination is mounted to the component tree. */
2264     ARKUI_NAV_DESTINATION_STATE_ON_APPEAR = 2,
2265     /** The NavDestination removed from the component tree. */
2266     ARKUI_NAV_DESTINATION_STATE_ON_DISAPPEAR = 3,
2267     /** Before the NavDestination show. */
2268     ARKUI_NAV_DESTINATION_STATE_ON_WILL_SHOW = 4,
2269     /** Before the NavDestination hide. */
2270     ARKUI_NAV_DESTINATION_STATE_ON_WILL_HIDE = 5,
2271     /** Before the NavDestination mount to the component tree. */
2272     ARKUI_NAV_DESTINATION_STATE_ON_WILL_APPEAR = 6,
2273     /** Before the NavDestination removed from the component tree. */
2274     ARKUI_NAV_DESTINATION_STATE_ON_WILL_DISAPPEAR = 7,
2275     /** The NavDestination returns from the component.*/
2276     ARKUI_NAV_DESTINATION_STATE_ON_BACK_PRESS = 100,
2277 } ArkUI_NavDestinationState;
2278 
2279 /**
2280  * @brief Define the state of Router Page.
2281  *
2282  * @since 12
2283  */
2284 typedef enum {
2285     /** The Router Page is about to be created. */
2286     ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_APPEAR = 0,
2287     /** The Router Page is about to be destroyed. */
2288     ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_DISAPPEAR = 1,
2289     /** The Router Page show. */
2290     ARKUI_ROUTER_PAGE_STATE_ON_SHOW = 2,
2291     /** The Router Page hide. */
2292     ARKUI_ROUTER_PAGE_STATE_ON_HIDE = 3,
2293     /** The Router Page returns. */
2294     ARKUI_ROUTER_PAGE_STATE_ON_BACK_PRESS = 4,
2295 } ArkUI_RouterPageState;
2296 
2297 /**
2298  * @brief defines the enumerated value of the extended security zone.
2299  *
2300  * @since 12
2301  */
2302 typedef enum {
2303     /** The default security zone includes the status bar and navigation bar. */
2304     ARKUI_SAFE_AREA_TYPE_SYSTEM = 1,
2305     /** Non-secure areas of the device, such as bangs or hole holes. */
2306     ARKUI_SAFE_AREA_TYPE_CUTOUT = 1 << 1,
2307     /** Soft keyboard area. */
2308     ARKUI_SAFE_AREA_TYPE_KEYBOARD = 1 << 2,
2309 } ArkUI_SafeAreaType;
2310 
2311 /**
2312  * @brief Define an enum for the areas of the <b>ListItemGroup</b> component.
2313  *
2314  * @since 15
2315  */
2316 typedef enum {
2317     /** Outside the area of the <b>ListItemGroup</b> component. */
2318     ARKUI_LIST_ITEM_GROUP_AREA_OUTSIDE = 0,
2319     /** Area when the <b>ListItemGroup</b> component does not have the header, footer, or list item. */
2320     ARKUI_LIST_ITEM_SWIPE_AREA_NONE,
2321     /** List item area of the <b>ListItemGroup</b> component. */
2322     ARKUI_LIST_ITEM_SWIPE_AREA_ITEM,
2323     /** Header area of the <b>ListItemGroup</b> component. */
2324     ARKUI_LIST_ITEM_SWIPE_AREA_HEADER,
2325     /** Footer area of the <b>ListItemGroup</b> component. */
2326     ARKUI_LIST_ITEM_SWIPE_AREA_FOOTER,
2327 } ArkUI_ListItemGroupArea;
2328 
2329 /**
2330  * @brief defines the enumerated value of the direction of the extended security zone.
2331  *
2332  * @since 12
2333  */
2334 typedef enum {
2335     /** Upper area. */
2336     ARKUI_SAFE_AREA_EDGE_TOP = 1,
2337     /** Lower area. */
2338     ARKUI_SAFE_AREA_EDGE_BOTTOM = 1 << 1,
2339     /** Front area. */
2340     ARKUI_SAFE_AREA_EDGE_START = 1 << 2,
2341     /** Tail area. */
2342     ARKUI_SAFE_AREA_EDGE_END = 1 << 3,
2343 } ArkUI_SafeAreaEdge;
2344 
2345 /**
2346  * @brief defines the enumerated value of the customDialog's keyboard avoid mode.
2347  *
2348  * @since 15
2349  */
2350 typedef enum {
2351     /** Defines avoid keyboard when keyboard shows. */
2352     ARKUI_KEYBOARD_AVOID_MODE_DEFAULT = 0,
2353     /** Defines not avoid keyboard when keyboard shows. */
2354     ARKUI_KEYBOARD_AVOID_MODE_NONE,
2355 } ArkUI_KeyboardAvoidMode;
2356 
2357 /**
2358  * @brief defines the enumerated value of area in hover mode.
2359  *
2360  * @since 15
2361  */
2362 typedef enum {
2363     /** Layout top half screen when the phone in hover mode. */
2364     ARKUI_HOVER_MODE_AREA_TYPE_TOP = 0,
2365     /** Layout bottom half screen when the phone in hover mode. */
2366     ARKUI_HOVER_MODE_AREA_TYPE_BOTTOM,
2367 } ArkUI_HoverModeAreaType;
2368 
2369 /**
2370  * @brief Enumerates the expand modes.
2371  *
2372  * @since 15
2373  */
2374 typedef enum {
2375     /** Not expand. */
2376     ARKUI_NOT_EXPAND = 0,
2377     /** Expand. */
2378     ARKUI_EXPAND = 1,
2379     /** Lazy expand. Expand the children of node if needed. */
2380     ARKUI_LAZY_EXPAND = 2,
2381 } ArkUI_ExpandMode;
2382 
2383 /**
2384  * @brief Defines parameter used by the system font style callback event.
2385  *
2386  * @since 12
2387  */
2388 typedef struct ArkUI_SystemFontStyleEvent ArkUI_SystemFontStyleEvent;
2389 
2390 /**
2391  * @brief Defines the options for taking snapshot.
2392  *
2393  * @since 15
2394  */
2395 typedef struct ArkUI_SnapshotOptions ArkUI_SnapshotOptions;
2396 
2397 /**
2398 * @brief Creates a size constraint.
2399 *
2400 * @since 12
2401 */
2402 ArkUI_LayoutConstraint* OH_ArkUI_LayoutConstraint_Create();
2403 
2404 /**
2405 * @brief Creates a deep copy of a size constraint.
2406 *
2407 * @param Constraint Indicates the pointer to the size constraint.
2408 * @return Returns the pointer to the new size constraint.
2409 * @since 12
2410 */
2411 ArkUI_LayoutConstraint* OH_ArkUI_LayoutConstraint_Copy(const ArkUI_LayoutConstraint* Constraint);
2412 
2413 /**
2414 * @brief Destroys the pointer to a size constraint.
2415 *
2416 * @param Constraint Indicates the pointer to the size constraint.
2417 * @since 12
2418 */
2419 void* OH_ArkUI_LayoutConstraint_Dispose(ArkUI_LayoutConstraint* Constraint);
2420 
2421 /**
2422 * @brief Obtains the maximum width for a size constraint, in px.
2423 *
2424 * @param Constraint Indicates the pointer to the size constraint.
2425 * @return Returns the maximum width.
2426 * @since 12
2427 */
2428 int32_t OH_ArkUI_LayoutConstraint_GetMaxWidth(const ArkUI_LayoutConstraint* Constraint);
2429 
2430 /**
2431 * @brief Obtains the minimum width for a size constraint, in px.
2432 *
2433 * @param Constraint Indicates the pointer to the size constraint.
2434 * @return Returns the minimum width.
2435 * @since 12
2436 */
2437 int32_t OH_ArkUI_LayoutConstraint_GetMinWidth(const ArkUI_LayoutConstraint* Constraint);
2438 
2439 /**
2440 * @brief Obtains the maximum height for a size constraint, in px.
2441 *
2442 * @param Constraint Indicates the pointer to the size constraint.
2443 * @return Returns the maximum height.
2444 * @since 12
2445 */
2446 int32_t OH_ArkUI_LayoutConstraint_GetMaxHeight(const ArkUI_LayoutConstraint* Constraint);
2447 
2448 /**
2449 * @brief Obtains the minimum height for a size constraint, in px.
2450 *
2451 * @param Constraint Indicates the pointer to the size constraint.
2452 * @return Returns the minimum height.
2453 * @since 12
2454 */
2455 int32_t OH_ArkUI_LayoutConstraint_GetMinHeight(const ArkUI_LayoutConstraint* Constraint);
2456 
2457 /**
2458 * @brief Obtains the width percentage reference for a size constraint, in px.
2459 *
2460 * @param Constraint Indicates the pointer to the size constraint.
2461 * @return Returns the width percentage reference.
2462 * @since 12
2463 */
2464 int32_t OH_ArkUI_LayoutConstraint_GetPercentReferenceWidth(const ArkUI_LayoutConstraint* Constraint);
2465 
2466 /**
2467 * @brief Obtains the height percentage reference for a size constraint, in px.
2468 *
2469 * @param Constraint Indicates the pointer to the size constraint.
2470 * @return Returns the height percentage reference.
2471 * @since 12
2472 */
2473 int32_t OH_ArkUI_LayoutConstraint_GetPercentReferenceHeight(const ArkUI_LayoutConstraint* Constraint);
2474 
2475 /**
2476 * @brief Sets the maximum width.
2477 *
2478 * @param Constraint Indicates the pointer to the size constraint.
2479 * @param value Indicates the maximum width, in px.
2480 * @since 12
2481 */
2482 void OH_ArkUI_LayoutConstraint_SetMaxWidth(ArkUI_LayoutConstraint* Constraint, int32_t value);
2483 
2484 /**
2485 * @brief Sets the minimum width.
2486 *
2487 * @param Constraint Indicates the pointer to the size constraint.
2488 * @param value Indicates the minimum width, in px.
2489 * @since 12
2490 */
2491 void OH_ArkUI_LayoutConstraint_SetMinWidth(ArkUI_LayoutConstraint* Constraint, int32_t value);
2492 
2493 /**
2494 * @brief Sets the maximum height.
2495 *
2496 * @param Constraint Indicates the pointer to the size constraint.
2497 * @param value Indicates the maximum height, in px.
2498 * @since 12
2499 */
2500 void OH_ArkUI_LayoutConstraint_SetMaxHeight(ArkUI_LayoutConstraint* Constraint, int32_t value);
2501 
2502 /**
2503 * @brief Sets the minimum height.
2504 *
2505 * @param Constraint Indicates the pointer to the size constraint.
2506 * @param value Indicates the minimum height, in px.
2507 * @since 12
2508 */
2509 void OH_ArkUI_LayoutConstraint_SetMinHeight(ArkUI_LayoutConstraint* Constraint, int32_t value);
2510 
2511 /**
2512 * @brief Sets the width percentage reference.
2513 *
2514 * @param Constraint Indicates the pointer to the size constraint.
2515 * @param value Indicates the width percentage reference, in px.
2516 * @since 12
2517 */
2518 void OH_ArkUI_LayoutConstraint_SetPercentReferenceWidth(ArkUI_LayoutConstraint* Constraint, int32_t value);
2519 
2520 /**
2521 * @brief Sets the height percentage reference.
2522 *
2523 * @param Constraint Indicates the pointer to the size constraint.
2524 * @param value Indicates the height percentage reference, in px.
2525 * @since 12
2526 */
2527 void OH_ArkUI_LayoutConstraint_SetPercentReferenceHeight(ArkUI_LayoutConstraint* Constraint, int32_t value);
2528 
2529 /**
2530 * @brief Obtains the pointer to a canvas for drawing, which can be converted into the <b>OH_Drawing_Canvas</b> pointer
2531 * in the <b>Drawing</b> module.
2532 *
2533 * @param context Indicates the pointer to the drawing context.
2534 * @return Returns the pointer to the canvas for drawing.
2535 * @since 12
2536 */
2537 void* OH_ArkUI_DrawContext_GetCanvas(ArkUI_DrawContext* context);
2538 
2539 /**
2540 * @brief Obtains the size of a drawing area.
2541 *
2542 * @param context Indicates the pointer to the drawing context.
2543 * @return Returns the size of the drawing area.
2544 * @since 12
2545 */
2546 ArkUI_IntSize OH_ArkUI_DrawContext_GetSize(ArkUI_DrawContext* context);
2547 
2548 /**
2549 * @brief Creates water flow section configuration.
2550 *
2551 * @return Returns the water flow section configuration.
2552 * @since 12
2553 */
2554 ArkUI_WaterFlowSectionOption* OH_ArkUI_WaterFlowSectionOption_Create();
2555 
2556 /**
2557 * @brief Destroys the pointer to a water flow section configuration.
2558 *
2559 * @param option Indicates the pointer to a water flow section configuration.
2560 * @since 12
2561 */
2562 void OH_ArkUI_WaterFlowSectionOption_Dispose(ArkUI_WaterFlowSectionOption* option);
2563 
2564 /**
2565 * @brief Sets the FlowItem block configuration information array length.
2566 *
2567 * @param option FlowItem Indicates the packet configuration.
2568 * @param size Array Length.
2569 * @since 12
2570 */
2571 void OH_ArkUI_WaterFlowSectionOption_SetSize(ArkUI_WaterFlowSectionOption* option, int32_t size);
2572 
2573 /**
2574 * @brief Gets the FlowItem grouping configuration information array length.
2575 *
2576 * @param option FlowItem Indicates the packet configuration.
2577 * @return Array size. If -1 is returned, the return fails.
2578 *         The possible cause of the failure is that the option parameter is abnormal, such as a null pointer.
2579 * @since 12
2580 */
2581 int32_t OH_ArkUI_WaterFlowSectionOption_GetSize(ArkUI_WaterFlowSectionOption* option);
2582 
2583 /**
2584 * @brief Sets the number of items in a water flow section.
2585 *
2586 * @param option Indicates the pointer to a water flow section configuration.
2587 * @param index Indicates the index of the target water flow section.
2588 * @param itemCount Indicates the number of items in the water flow section.
2589 * @since 12
2590 */
2591 void OH_ArkUI_WaterFlowSectionOption_SetItemCount(ArkUI_WaterFlowSectionOption* option,
2592     int32_t index, int32_t itemCount);
2593 
2594 /**
2595 * @brief Obtains the number of items in the water flow section that matches the specified index.
2596 *
2597 * @param option Indicates the pointer to a water flow section configuration.
2598 * @param index Indicates the index of the target water flow section.
2599 * @return Returns the number of items in the water flow section.
2600 * @since 12
2601 */
2602 int32_t OH_ArkUI_WaterFlowSectionOption_GetItemCount(ArkUI_WaterFlowSectionOption* option, int32_t index);
2603 
2604 /**
2605 * @brief The FlowItem grouping configuration information getsthe spindle size of
2606 * the specified Item based on flowItemIndex.
2607 *
2608 * @param option Indicates the pointer to a water flow section configuration.
2609 * @param index Indicates the index of the target water flow section.
2610 * @param callback Gets the spindle size of the specified Item based on index.
2611 * @since 12
2612 */
2613 void OH_ArkUI_WaterFlowSectionOption_RegisterGetItemMainSizeCallbackByIndex(ArkUI_WaterFlowSectionOption* option,
2614     int32_t index, float(*callback)(int32_t itemIndex));
2615 
2616 /**
2617 * @brief The FlowItem grouping configuration information getsthe spindle size of
2618 * the specified Item based on flowItemIndex.
2619 *
2620 * @param option Indicates the pointer to a water flow section configuration.
2621 * @param index Indicates the index of the target water flow section.
2622 * @param userData FlowItem Custom data.
2623 * @param callback Gets the spindle size of the specified Item based on index.
2624 * @since 12
2625 */
2626 void OH_ArkUI_WaterFlowSectionOption_RegisterGetItemMainSizeCallbackByIndexWithUserData(
2627     ArkUI_WaterFlowSectionOption* option, int32_t index, void* userData,
2628     float (*callback)(int32_t itemIndex, void* userData));
2629 
2630 /**
2631 * @brief Sets the number of columns (in a vertical layout) or rows (in a horizontal layout) of a water flow.
2632 *
2633 * @param option Indicates the pointer to a water flow section configuration.
2634 * @param index Indicates the index of the target water flow section.
2635 * @param crossCount Indicates the number of columns or rows, depending on the layout direction.
2636 * @since 12
2637 */
2638 void OH_ArkUI_WaterFlowSectionOption_SetCrossCount(
2639     ArkUI_WaterFlowSectionOption* option, int32_t index, int32_t crossCount);
2640 
2641 /**
2642 * @brief Obtains the number of columns (in a vertical layout) or rows (in a horizontal layout) in the water flow section
2643 * that matches the specified index.
2644 *
2645 * @param option Indicates the pointer to a water flow section configuration.
2646 * @param index Indicates the index of the target water flow section.
2647 * @return Returns the number of columns or rows.
2648 * @since 12
2649 */
2650 int32_t OH_ArkUI_WaterFlowSectionOption_GetCrossCount(ArkUI_WaterFlowSectionOption* option, int32_t index);
2651 
2652 /**
2653 * @brief Sets the gap between columns in the specified water flow section.
2654 *
2655 * @param option Indicates the pointer to a water flow section configuration.
2656 * @param index Indicates the index of the target water flow section.
2657 * @param columnGap Indicates the gap between columns to set.
2658 * @since 12
2659 */
2660 void OH_ArkUI_WaterFlowSectionOption_SetColumnGap(ArkUI_WaterFlowSectionOption* option,
2661     int32_t index, float columnGap);
2662 
2663 /**
2664 * @brief Obtains the gap between columns in the water flow section that matches the specified index.
2665 *
2666 * @param option Indicates the pointer to a water flow section configuration.
2667 * @param index Indicates the index of the target water flow section.
2668 * @return Returns the gap between columns.
2669 * @since 12
2670 */
2671 float OH_ArkUI_WaterFlowSectionOption_GetColumnGap(ArkUI_WaterFlowSectionOption* option, int32_t index);
2672 
2673 /**
2674 * @brief Sets the gap between rows in the specified water flow section.
2675 *
2676 * @param option Indicates the pointer to a water flow section configuration.
2677 * @param index Indicates the index of the target water flow section.
2678 * @param rowGap Indicates the gap between rows to set.
2679 * @since 12
2680 */
2681 void OH_ArkUI_WaterFlowSectionOption_SetRowGap(ArkUI_WaterFlowSectionOption* option,
2682     int32_t index, float rowGap);
2683 
2684 /**
2685 * @brief Obtains the gap between rows in the water flow section that matches the specified index.
2686 *
2687 * @param option Indicates the pointer to a water flow section configuration.
2688 * @param index Indicates the index of the target water flow section.
2689 * @return Returns the gap between rows.
2690 * @since 12
2691 */
2692 float OH_ArkUI_WaterFlowSectionOption_GetRowGap(ArkUI_WaterFlowSectionOption* option, int32_t index);
2693 
2694 /**
2695 * @brief Sets the margins for the specified water flow section.
2696 *
2697 * @param option Indicates the pointer to a water flow section configuration.
2698 * @param index Indicates the index of the target water flow section.
2699 * @param marginTop Indicates the top margin of the water flow section.
2700 * @param marginRight Indicates the right margin of the water flow section.
2701 * @param marginBottom Indicates the bottom margin of the water flow section.
2702 * @param marginLeft Indicates the left margin of the water flow section.
2703 * @since 12
2704 */
2705 void OH_ArkUI_WaterFlowSectionOption_SetMargin(ArkUI_WaterFlowSectionOption* option, int32_t index,
2706     float marginTop, float marginRight, float marginBottom, float marginLeft);
2707 
2708 /**
2709 * @brief Obtains the margins of the water flow section that matches the specified index.
2710 *
2711 * @param option Indicates the pointer to a water flow section configuration.
2712 * @param index Indicates the index of the target water flow section.
2713 * @return Returns the margins.
2714 * @since 12
2715 */
2716 ArkUI_Margin OH_ArkUI_WaterFlowSectionOption_GetMargin(ArkUI_WaterFlowSectionOption* option, int32_t index);
2717 
2718 /**
2719  * @brief Creates a navigation indicator.
2720  *
2721  * @param type Indicates the type of the indicator.
2722  * @return Returns the pointer to the new indicator.
2723  * @since 12
2724 */
2725 ArkUI_SwiperIndicator* OH_ArkUI_SwiperIndicator_Create(ArkUI_SwiperIndicatorType type);
2726 
2727 /**
2728  * @brief Destroys the pointer to the indicator.
2729  *
2730  * @param indicator Indicates the pointer to the indicator.
2731  * @since 12
2732 */
2733 void OH_ArkUI_SwiperIndicator_Dispose(ArkUI_SwiperIndicator* indicator);
2734 
2735 /**
2736  * @brief Sets the distance between the navigation point and the start of the swiper.
2737  *
2738  * @param indicator Indicates the pointer to the indicator.
2739  * @param value Indicates the distance between the navigation point and the start of the swiper.
2740  * @since 12
2741 */
2742 void OH_ArkUI_SwiperIndicator_SetStartPosition(ArkUI_SwiperIndicator* indicator, float value);
2743 
2744 /**
2745  * @brief Obtains the distance between the navigation point and the start of the swiper.
2746  *
2747  * @param indicator Indicates the pointer to the indicator.
2748  * @return Returns the distance between the navigation point and the start of the swiper.
2749  * @since 12
2750 */
2751 float OH_ArkUI_SwiperIndicator_GetStartPosition(ArkUI_SwiperIndicator* indicator);
2752 
2753 /**
2754  * @brief Sets the distance between the navigation point and the top of the swiper.
2755  *
2756  * @param indicator Indicates the pointer to the indicator.
2757  * @param value Indicates the distance between the navigation point and the top of the swiper.
2758  * @since 12
2759 */
2760 void OH_ArkUI_SwiperIndicator_SetTopPosition(ArkUI_SwiperIndicator* indicator, float value);
2761 
2762 /**
2763  * @brief Obtains the distance between the navigation point and the top of the swiper.
2764  *
2765  * @param indicator Indicates the pointer to the indicator.
2766  * @return Returns the distance between the navigation point and the top of the swiper.
2767  * @since 12
2768 */
2769 float OH_ArkUI_SwiperIndicator_GetTopPosition(ArkUI_SwiperIndicator* indicator);
2770 
2771 /**
2772  * @brief Sets the distance between the navigation point and the right of the swiper.
2773  *
2774  * @param indicator Indicates the pointer to the indicator.
2775  * @param value Indicates the distance between the navigation point and the right of the swiper.
2776  * @since 12
2777 */
2778 void OH_ArkUI_SwiperIndicator_SetEndPosition(ArkUI_SwiperIndicator* indicator, float value);
2779 
2780 /**
2781  * @brief Obtains the distance between the navigation point and the end of the swiper.
2782  *
2783  * @param indicator Indicates the pointer to the indicator.
2784  * @return Returns the distance between the navigation point and the end of the swiper.
2785  * @since 12
2786 */
2787 float OH_ArkUI_SwiperIndicator_GetEndPosition(ArkUI_SwiperIndicator* indicator);
2788 
2789 /**
2790  * @brief Sets the distance between the navigation point and the bottom of the swiper.
2791  *
2792  * @param indicator Indicates the pointer to the indicator.
2793  * @param value Indicates the distance between the navigation point and the bottom of the swiper.
2794  * @since 12
2795 */
2796 void OH_ArkUI_SwiperIndicator_SetBottomPosition(ArkUI_SwiperIndicator* indicator, float value);
2797 
2798 /**
2799  * @brief Obtains the distance between the navigation point and the bottom of the swiper.
2800  *
2801  * @param indicator Indicates the pointer to the indicator.
2802  * @return Returns the distance between the navigation point and the bottom of the swiper.
2803  * @since 12
2804 */
2805 float OH_ArkUI_SwiperIndicator_GetBottomPosition(ArkUI_SwiperIndicator* indicator);
2806 
2807 /**
2808  * @brief Sets the width of the dot for the dot indicator.
2809  *
2810  * @param indicator Indicates the pointer to the indicator.
2811  * @param value Indicates the width of the dot for the dot indicator.
2812  * @since 12
2813 */
2814 void OH_ArkUI_SwiperIndicator_SetItemWidth(ArkUI_SwiperIndicator* indicator, float value);
2815 
2816 /**
2817  * @brief Obtains the width of the dot for the dot indicator.
2818  *
2819  * @param indicator Indicates the pointer to the indicator.
2820  * @return Returns the width of the dot for the dot indicator.
2821  * @since 12
2822 */
2823 float OH_ArkUI_SwiperIndicator_GetItemWidth(ArkUI_SwiperIndicator* indicator);
2824 
2825 /**
2826  * @brief Sets the height of the dot for the dot indicator.
2827  *
2828  * @param indicator Indicates the pointer to the indicator.
2829  * @param value Indicates the height of the dot for the dot indicator.
2830  * @since 12
2831 */
2832 void OH_ArkUI_SwiperIndicator_SetItemHeight(ArkUI_SwiperIndicator* indicator, float value);
2833 
2834 /**
2835  * @brief  Obtains the height of the dot for the dot indicator.
2836  *
2837  * @param indicator Indicates the pointer to the indicator.
2838  * @return Returns the height of the dot for the dot indicator.
2839  * @since 12
2840 */
2841 float OH_ArkUI_SwiperIndicator_GetItemHeight(ArkUI_SwiperIndicator* indicator);
2842 
2843 /**
2844  * @brief Sets the width of the selected dot for the dot indicator.
2845  *
2846  * @param indicator Indicates the pointer to the indicator.
2847  * @param value Indicates the width of the selected dot for the dot indicator.
2848  * @since 12
2849 */
2850 void OH_ArkUI_SwiperIndicator_SetSelectedItemWidth(ArkUI_SwiperIndicator* indicator, float value);
2851 
2852 /**
2853  * @brief  Obtains the width of the selected dot for the dot indicator.
2854  *
2855  * @param indicator Indicates the pointer to the indicator.
2856  * @return Returns the width of the selected dot for the dot indicator.
2857  * @since 12
2858 */
2859 float OH_ArkUI_SwiperIndicator_GetSelectedItemWidth(ArkUI_SwiperIndicator* indicator);
2860 
2861 /**
2862  * @brief Sets the height of the selected dot for the dot indicator.
2863  *
2864  * @param indicator Indicates the pointer to the indicator.
2865  * @param value Indicates the height of the selected dot for the dot indicator.
2866  * @since 12
2867 */
2868 void OH_ArkUI_SwiperIndicator_SetSelectedItemHeight(ArkUI_SwiperIndicator* indicator, float value);
2869 
2870 /**
2871  * @brief  Obtains the height of the selected dot for the dot indicator.
2872  *
2873  * @param indicator Indicates the pointer to the indicator.
2874  * @return Returns the height of the selected dot for the dot indicator.
2875  * @since 12
2876 */
2877 float OH_ArkUI_SwiperIndicator_GetSelectedItemHeight(ArkUI_SwiperIndicator* indicator);
2878 
2879 /**
2880  * @brief Sets whether to display the mask style of the dot navigation indicator.
2881  *
2882  * @param indicator Indicates the pointer to the indicator.
2883  * @param mask Whether to display the mask style. True means to display.
2884  * @since 12
2885 */
2886 void OH_ArkUI_SwiperIndicator_SetMask(ArkUI_SwiperIndicator* indicator, int32_t mask);
2887 
2888 /**
2889  * @brief Obtains whether to display the mask style of the dot navigation indicator.
2890  *
2891  * @param indicator Indicates the pointer to the indicator.
2892  * @return Returns whether to display the mask style. True means to display.
2893  * @since 12
2894 */
2895 int32_t OH_ArkUI_SwiperIndicator_GetMask(ArkUI_SwiperIndicator* indicator);
2896 
2897 /**
2898  * @brief Sets the color of the dot navigation indicator.
2899  *
2900  * @param indicator Indicates the pointer to the indicator.
2901  * @param color the color of the dot navigation indicator, in 0xARGB format.
2902  * @since 12
2903 */
2904 void OH_ArkUI_SwiperIndicator_SetColor(ArkUI_SwiperIndicator* indicator, uint32_t color);
2905 
2906 /**
2907  * @brief Obtains the color of the dot navigation indicator.
2908  *
2909  * @param indicator Indicates the pointer to the indicator.
2910  * @return Returns the color of the dot navigation indicator, in 0xARGB format.
2911  * @since 12
2912 */
2913 uint32_t OH_ArkUI_SwiperIndicator_GetColor(ArkUI_SwiperIndicator* indicator);
2914 
2915 /**
2916  * @brief Sets the color of the selected dot for the navigation indicator.
2917  *
2918  * @param indicator Indicates the pointer to the indicator.
2919  * @param color the color of the selected dot, in 0xARGB format.
2920  * @since 12
2921 */
2922 void OH_ArkUI_SwiperIndicator_SetSelectedColor(ArkUI_SwiperIndicator* indicator, uint32_t selectedColor);
2923 
2924 /**
2925  * @brief Obtains the color of the selected dot for the dot navigation indicator.
2926  *
2927  * @param indicator Indicates the pointer to the indicator.
2928  * @return Returns the color of the selected dot, in 0xARGB format.
2929  * @since 12
2930 */
2931 uint32_t OH_ArkUI_SwiperIndicator_GetSelectedColor(ArkUI_SwiperIndicator* indicator);
2932 
2933 /**
2934  * @brief Sets the number of maxDisplayCount for the dot navigation indicator.
2935  *
2936  * @param indicator Indicates the pointer to the indicator.
2937  * @param maxDisplayCount the maxDisplayCount of the navigation dot, span is 6-9.
2938  * @return {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
2939  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} indicator is null or maxDisplayCount less then 6 or
2940  *         maxDisplayCount more then 9
2941  * @since 12
2942 */
2943 int32_t OH_ArkUI_SwiperIndicator_SetMaxDisplayCount(ArkUI_SwiperIndicator* indicator, int32_t maxDisplayCount);
2944 
2945 /**
2946  * @brief Obtains the number of maxDisplayCount for the dot navigation indicator.
2947  *
2948  * @param indicator Indicates the pointer to the indicator.
2949  * @return Returns the number of the maxDisplayCount, span is 6-9.
2950  *         0 - indicator is null
2951  * @since 12
2952 */
2953 int32_t OH_ArkUI_SwiperIndicator_GetMaxDisplayCount(ArkUI_SwiperIndicator* indicator);
2954 
2955 /**
2956  * @brief Create auxiliary line information in the RelativeContaine container.
2957  *
2958  * @param size The number of auxiliary lines.
2959  * @return auxiliary line information.
2960  * @since 12
2961  */
2962 ArkUI_GuidelineOption* OH_ArkUI_GuidelineOption_Create(int32_t size);
2963 
2964 /**
2965  * @brief Destroy auxiliary line information.
2966  *
2967  * @param guideline auxiliary line information.
2968  * @since 12
2969  */
2970 void OH_ArkUI_GuidelineOption_Dispose(ArkUI_GuidelineOption* guideline);
2971 
2972 /**
2973  * @brief Set the Id of the auxiliary line.
2974  *
2975  * @param guideline auxiliary line information.
2976  * @param value id, must be unique and cannot have the same name as the component in the container.
2977  * @param index auxiliary line index value.
2978  * @since 12
2979  */
2980 void OH_ArkUI_GuidelineOption_SetId(ArkUI_GuidelineOption* guideline, const char* value, int32_t index);
2981 
2982 /**
2983  * @brief Set the direction of the auxiliary line.
2984  *
2985  * @param guideline auxiliary line information.
2986  * @param value direction.
2987  * @param index auxiliary line index value.
2988  * @since 12
2989  */
2990 void OH_ArkUI_GuidelineOption_SetDirection(ArkUI_GuidelineOption* guideline, ArkUI_Axis value, int32_t index);
2991 
2992 /**
2993  * @brief Set the distance from the left or top of the container.
2994  *
2995  * @param guideline auxiliary line information.
2996  * @param value The distance from the left or top of the container.
2997  * @param index auxiliary line index value.
2998  * @since 12
2999  */
3000 void OH_ArkUI_GuidelineOption_SetPositionStart(ArkUI_GuidelineOption* guideline, float value, int32_t index);
3001 
3002 /**
3003  * @brief Set the distance from the right or bottom of the container.
3004  *
3005  * @param guideline auxiliary line information.
3006  * @param value The distance from the right side or bottom of the container.
3007  * @param index auxiliary line index value.
3008  * @since 12
3009  */
3010 void OH_ArkUI_GuidelineOption_SetPositionEnd(ArkUI_GuidelineOption* guideline, float value, int32_t index);
3011 
3012 /**
3013  * @brief Get the Id of the auxiliary line.
3014  *
3015  * @param guideline auxiliary line information.
3016  * @param index auxiliary line index value.
3017  * @return Id.
3018  * @since 12
3019  */
3020 const char* OH_ArkUI_GuidelineOption_GetId(ArkUI_GuidelineOption* guideline, int32_t index);
3021 
3022 /**
3023  * @brief Get the direction of the auxiliary line.
3024  *
3025  * @param guideline auxiliary line information.
3026  * @param index auxiliary line index value.
3027  * @return direction.
3028  * @since 12
3029  */
3030 ArkUI_Axis OH_ArkUI_GuidelineOption_GetDirection(ArkUI_GuidelineOption* guideline, int32_t index);
3031 
3032 /**
3033  * @brief Get the distance from the left or top of the container.
3034  *
3035  * @param guideline auxiliary line information.
3036  * @param index auxiliary line index value.
3037  * @return The distance from the left or top of the container.
3038  * @since 12
3039  */
3040 float OH_ArkUI_GuidelineOption_GetPositionStart(ArkUI_GuidelineOption* guideline, int32_t index);
3041 
3042 /**
3043  * @brief Get the distance from the right side or bottom of the container.
3044  *
3045  * @param guideline auxiliary line information.
3046  * @param index auxiliary line index value.
3047  * @return The distance from the right side or bottom of the container.
3048  * @since 12
3049  */
3050 float OH_ArkUI_GuidelineOption_GetPositionEnd(ArkUI_GuidelineOption* guideline, int32_t index);
3051 
3052 /**
3053  * @brief creates barrier information within the RelativeContaine container.
3054  *
3055  * @param size Number of barriers.
3056  * @return barrier information.
3057  * @since 12
3058  */
3059 ArkUI_BarrierOption* OH_ArkUI_BarrierOption_Create(int32_t size);
3060 
3061 /**
3062  * @brief Destroy barrier information.
3063  *
3064  * @param barrierStyle barrier information.
3065  * @since 12
3066  */
3067 void OH_ArkUI_BarrierOption_Dispose(ArkUI_BarrierOption* barrierStyle);
3068 
3069 /**
3070  * @brief Set the Id of the barrier.
3071  *
3072  * @param barrierStyle barrier information.
3073  * @param value id, must be unique and cannot have the same name as the component in the container.
3074  * @param index Barrier index value.
3075  * @since 12
3076  */
3077 void OH_ArkUI_BarrierOption_SetId(ArkUI_BarrierOption* barrierStyle, const char* value, int32_t index);
3078 
3079 /**
3080  * @brief Set the direction of the barrier.
3081  *
3082  * @param barrierStyle barrier information.
3083  * @param value direction.
3084  * @param index Barrier index value.
3085  * @since 12
3086  */
3087 void OH_ArkUI_BarrierOption_SetDirection(
3088     ArkUI_BarrierOption* barrierStyle, ArkUI_BarrierDirection value, int32_t index);
3089 
3090 /**
3091  * @brief Sets the dependent component of the barrier.
3092  *
3093  * @param barrierStyle barrier information.
3094  * @param value The ID of the dependent component.
3095  * @param index Barrier index value.
3096  * @since 12
3097  */
3098 void OH_ArkUI_BarrierOption_SetReferencedId(ArkUI_BarrierOption* barrierStyle, const char* value, int32_t index);
3099 
3100 /**
3101  * @brief Get the Id of the barrier.
3102  *
3103  * @param barrierStyle auxiliary line information.
3104  * @param index auxiliary line index value.
3105  * @return The Id of the barrier.
3106  * @since 12
3107  */
3108 const char* OH_ArkUI_BarrierOption_GetId(ArkUI_BarrierOption* barrierStyle, int32_t index);
3109 
3110 /**
3111  * @brief Gets the direction of the barrier.
3112  *
3113  * @param barrierStyle auxiliary line information.
3114  * @param index auxiliary line index value.
3115  * @return The direction of the barrier.
3116  * @since 12
3117  */
3118 ArkUI_BarrierDirection OH_ArkUI_BarrierOption_GetDirection(ArkUI_BarrierOption* barrierStyle, int32_t index);
3119 
3120 /**
3121  * @brief Get the dependent components of the barrier.
3122  *
3123  * @param barrierStyle auxiliary line information.
3124  * @param index auxiliary line index value.
3125  * @param referencedIndex dependent component Id index value.
3126  * @return The barrier's dependent components.
3127  * @since 12
3128  */
3129 const char* OH_ArkUI_BarrierOption_GetReferencedId(
3130     ArkUI_BarrierOption* barrierStyle, int32_t index, int32_t referencedIndex);
3131 
3132 /**
3133  * @brief Gets the number of dependent components of the barrier.
3134  *
3135  * @param barrierStyle auxiliary line information.
3136  * @param index auxiliary line index value.
3137  * @return The number of dependent components of the barrier.
3138  * @since 12
3139  */
3140 int32_t OH_ArkUI_BarrierOption_GetReferencedIdSize(ArkUI_BarrierOption* barrierStyle, int32_t index);
3141 
3142 /**
3143  * @brief creates alignment rule information for subcomponents in relative containers.
3144  *
3145  * @return Alignment rule information.
3146  * @since 12
3147  */
3148 ArkUI_AlignmentRuleOption* OH_ArkUI_AlignmentRuleOption_Create();
3149 
3150 /**
3151  * @brief Destroys the alignment rule information of subcomponents in relative containers.
3152  *
3153  * @param option Alignment rule information of subcomponents in the relative container.
3154  * @since 12
3155  */
3156 void OH_ArkUI_AlignmentRuleOption_Dispose(ArkUI_AlignmentRuleOption* option);
3157 
3158 /**
3159  * @brief Set the start alignment parameter.
3160  *
3161  * @param option Alignment rule information of subcomponents in the relative container.
3162  * @param id The id value of the anchor component.
3163  * @param value Alignment relative to the anchor component.
3164  * @since 12
3165  */
3166 void OH_ArkUI_AlignmentRuleOption_SetStart(
3167     ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_HorizontalAlignment alignment);
3168 
3169 /**
3170  * @brief Set the end alignment parameter.
3171  *
3172  * @param option Alignment rule information of subcomponents in the relative container.
3173  * @param id The id value of the anchor component.
3174  * @param value Alignment relative to the anchor component.
3175  * @since 12
3176  */
3177 void OH_ArkUI_AlignmentRuleOption_SetEnd(
3178     ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_HorizontalAlignment alignment);
3179 
3180 /**
3181 * @brief Set the parameters for horizontal center alignment.
3182 *
3183 * @param option Alignment rule information of subcomponents in the relative container.
3184 * @param id The id value of the anchor component.
3185 * @param value Alignment relative to anchor component
3186 * @since 12
3187 */
3188 void OH_ArkUI_AlignmentRuleOption_SetCenterHorizontal(
3189     ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_HorizontalAlignment alignment);
3190 
3191 /**
3192  * @brief Set the parameters for top alignment.
3193  *
3194  * @param option Alignment rule information of subcomponents in the relative container.
3195  * @param id The id value of the anchor component.
3196  * @param value Alignment relative to anchor component
3197  * @since 12
3198  */
3199 void OH_ArkUI_AlignmentRuleOption_SetTop(ArkUI_AlignmentRuleOption* option, const char* id,
3200     ArkUI_VerticalAlignment alignment);
3201 
3202 /**
3203  * @brief Set the bottom alignment parameters.
3204  *
3205  * @param option Alignment rule information of subcomponents in the relative container.
3206  * @param id The id value of the anchor component.
3207  * @param value Alignment relative to anchor component
3208  * @since 12
3209  */
3210 void OH_ArkUI_AlignmentRuleOption_SetBottom(
3211     ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_VerticalAlignment alignment);
3212 
3213 /**
3214 * @brief Set the parameters for vertical center alignment.
3215 *
3216 * @param option Alignment rule information of subcomponents in the relative container.
3217 * @param id The id value of the anchor component.
3218 * @param value Alignment relative to the anchor component.
3219 * @since 12
3220 */
3221 void OH_ArkUI_AlignmentRuleOption_SetCenterVertical(
3222     ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_VerticalAlignment alignment);
3223 
3224 /**
3225  * @brief Sets the horizontal offset parameter of the component under the anchor point constraint.
3226  *
3227  * @param option Alignment rule information of subcomponents in the relative container.
3228  * @param horizontal bias value in the horizontal direction.
3229  * @since 12
3230  */
3231 void OH_ArkUI_AlignmentRuleOption_SetBiasHorizontal(ArkUI_AlignmentRuleOption* option, float horizontal);
3232 
3233 /**
3234  * @brief Set the vertical offset parameter of the component under the anchor point constraint.
3235  *
3236  * @param option Alignment rule information of subcomponents in the relative container.
3237  * @param horizontal bias value in the vertical direction.
3238  * @since 12
3239  */
3240 void OH_ArkUI_AlignmentRuleOption_SetBiasVertical(ArkUI_AlignmentRuleOption* option, float vertical);
3241 
3242 /**
3243  * @brief Get the Id of the start-aligned parameter.
3244  *
3245  * @param option Alignment rule information of subcomponents in the relative container.
3246  * @return The id value of the anchor component.
3247  * @since 12
3248  */
3249 const char* OH_ArkUI_AlignmentRuleOption_GetStartId(ArkUI_AlignmentRuleOption* option);
3250 
3251 /**
3252 * @brief Gets the alignment of the start-aligned parameter.
3253 *
3254 * @param option Alignment rule information of subcomponents in the relative container.
3255 * @return The alignment of the parameters.
3256 * @since 12
3257 */
3258 ArkUI_HorizontalAlignment OH_ArkUI_AlignmentRuleOption_GetStartAlignment(ArkUI_AlignmentRuleOption* option);
3259 
3260 /**
3261  * @brief Get the end alignment parameter.
3262  *
3263  * @param option Alignment rule information of subcomponents in the relative container.
3264  * @return End-aligned parameter id.
3265  * @since 12
3266  */
3267 const char* OH_ArkUI_AlignmentRuleOption_GetEndId(ArkUI_AlignmentRuleOption* option);
3268 
3269 /**
3270 * @brief Get the end alignment parameter.
3271 *
3272 * @param option Alignment rule information of subcomponents in the relative container.
3273 * @return The alignment of the end-aligned parameter.
3274 * @since 12
3275 */
3276 ArkUI_HorizontalAlignment OH_ArkUI_AlignmentRuleOption_GetEndAlignment(ArkUI_AlignmentRuleOption* option);
3277 
3278 /**
3279 * @brief Gets the parameters of horizontal center alignment.
3280 *
3281 * @param option Alignment rule information of subcomponents in the relative container.
3282 * @return The id of the parameter of horizontal center alignment.
3283 * @since 12
3284 */
3285 const char* OH_ArkUI_AlignmentRuleOption_GetCenterIdHorizontal(ArkUI_AlignmentRuleOption* option);
3286 
3287 /**
3288 * @brief Gets the parameters of horizontal center alignment.
3289 *
3290 * @param option Alignment rule information of subcomponents in the relative container.
3291 * @return The alignment of the horizontally centered alignment parameter.
3292 * @since 12
3293 */
3294 ArkUI_HorizontalAlignment OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentHorizontal(ArkUI_AlignmentRuleOption* option);
3295 
3296 /**
3297  * @brief Get the top-aligned parameters.
3298  *
3299  * @param option Alignment rule information of subcomponents in the relative container.
3300  * @return Top aligned parameter id.
3301  * @since 12
3302  */
3303 const char* OH_ArkUI_AlignmentRuleOption_GetTopId(ArkUI_AlignmentRuleOption* option);
3304 
3305 /**
3306 * @brief Get the top-aligned parameters.
3307 *
3308 * @param option Alignment rule information of subcomponents in the relative container.
3309 * @return The alignment of the top-aligned parameter.
3310 * @since 12
3311 */
3312 ArkUI_VerticalAlignment OH_ArkUI_AlignmentRuleOption_GetTopAlignment(ArkUI_AlignmentRuleOption* option);
3313 
3314 /**
3315  * @brief Get the bottom alignment parameters.
3316  *
3317  * @param option Alignment rule information of subcomponents in the relative container.
3318  * @return The id of the bottom-aligned parameter.
3319  * @since 12
3320  */
3321 const char* OH_ArkUI_AlignmentRuleOption_GetBottomId(ArkUI_AlignmentRuleOption* option);
3322 
3323 /**
3324 * @brief Get the bottom alignment parameters.
3325 *
3326 * @param option Alignment rule information of subcomponents in the relative container.
3327 * @return The alignment of the bottom-aligned parameter.
3328 * @since 12
3329 */
3330 ArkUI_VerticalAlignment OH_ArkUI_AlignmentRuleOption_GetBottomAlignment(ArkUI_AlignmentRuleOption* option);
3331 
3332 /**
3333 * @brief Gets the parameters of vertical center alignment.
3334 *
3335 * @param option Alignment rule information of subcomponents in the relative container.
3336 * @return The id of the vertical center alignment parameter.
3337 * @since 12
3338 */
3339 const char* OH_ArkUI_AlignmentRuleOption_GetCenterIdVertical(ArkUI_AlignmentRuleOption* option);
3340 
3341 /**
3342 * @brief Gets the parameters of vertical center alignment.
3343 *
3344 * @param option Alignment rule information of subcomponents in the relative container.
3345 * @return The alignment of the vertical center alignment parameter.
3346 * @since 12
3347 */
3348 ArkUI_VerticalAlignment OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentVertical(ArkUI_AlignmentRuleOption* option);
3349 
3350 /**
3351  * @brief Get the bias value in the horizontal direction.
3352  *
3353  * @param option Alignment rule information of subcomponents in the relative container.
3354  * @return The bias value in the horizontal direction.
3355  * @since 12
3356  */
3357 float OH_ArkUI_AlignmentRuleOption_GetBiasHorizontal(ArkUI_AlignmentRuleOption* option);
3358 
3359 /**
3360  * @brief Get the bias value in the vertical direction.
3361  *
3362  * @param option Alignment rule information of subcomponents in the relative container.
3363  * @return bias value in vertical direction.
3364  * @since 12
3365 */
3366 float OH_ArkUI_AlignmentRuleOption_GetBiasVertical(ArkUI_AlignmentRuleOption* option);
3367 
3368 /**
3369  * @brief Create a configuration item for the ListitemSwipeActionItem interface settings.
3370  *
3371  * @return List Item SwipeActionItem configuration item instance. If the object returns a null pointer,
3372  *         it indicates creation failure, and the reason for the failure may be that the address space is full.
3373  * @since 12
3374 */
3375 ArkUI_ListItemSwipeActionItem* OH_ArkUI_ListItemSwipeActionItem_Create();
3376 
3377 /**
3378 * @brief Destroy the ListitemSwipeActionItem instance.
3379 *
3380 * @param option List Item SwipeActionItem instance to be destroyed.
3381 * @since 12
3382 */
3383 void OH_ArkUI_ListItemSwipeActionItem_Dispose(ArkUI_ListItemSwipeActionItem* item);
3384 
3385 /**
3386 * @brief Set the layout content of ListItem SwipeActionItem.
3387 *
3388 * @param option List Item SwipeActionItem instance.
3389 * @param builder Layout information.
3390 * @since 12
3391 */
3392 void OH_ArkUI_ListItemSwipeActionItem_SetContent(ArkUI_ListItemSwipeActionItem* item, ArkUI_NodeHandle node);
3393 
3394 /**
3395 * @brief Set the threshold for long-distance sliding deletion distance of components.
3396 *
3397 * @param option List Item SwipeActionItem instance.
3398 * @param distance Component long-distance sliding deletion distance threshold.
3399 * @since 12
3400 */
3401 void OH_ArkUI_ListItemSwipeActionItem_SetActionAreaDistance(ArkUI_ListItemSwipeActionItem* item, float distance);
3402 
3403 /**
3404 * @brief Obtain the threshold for long-distance sliding deletion distance of components.
3405 *
3406 * @param option List Item SwipeActionItem instance.
3407 * @return Component long-distance sliding deletion distance threshold. If -1.0f is returned, the return fails.
3408 *         The possible cause of the failure is that the item parameter is abnormal, such as a null pointer.
3409 * @since 12
3410 */
3411 float OH_ArkUI_ListItemSwipeActionItem_GetActionAreaDistance(ArkUI_ListItemSwipeActionItem* item);
3412 
3413 /**
3414 * @brief Set the event to be called when a sliding entry enters the deletion area.
3415 *
3416 * @param option List Item SwipeActionItem instance.
3417 * @param callback Callback Events.
3418 * @since 12
3419 */
3420 void OH_ArkUI_ListItemSwipeActionItem_SetOnEnterActionArea(ArkUI_ListItemSwipeActionItem* item, void (*callback)());
3421 
3422 /**
3423  * @brief Set the event triggered when a sliding entry enters the deletion area.
3424  *
3425  * @param option List Item SwipeActionItem instance.
3426  * @param userData User defined data.
3427  * @param callback Callback Events.
3428  * @since 12
3429  */
3430 void OH_ArkUI_ListItemSwipeActionItem_SetOnEnterActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* item,
3431     void* userData, void (*callback)(void* userData));
3432 
3433 /**
3434 * @brief Set the event to be called when a component enters the long-range deletion area and deletes a ListItem.
3435 *
3436 * @param option List Item SwipeActionItem instance.
3437 * @param callback Callback Events.
3438 * @since 12
3439 */
3440 void OH_ArkUI_ListItemSwipeActionItem_SetOnAction(ArkUI_ListItemSwipeActionItem* item, void (*callback)());
3441 
3442 /**
3443  * @brief Set the event triggered when a component enters the long-range deletion area and deletes a ListItem.
3444  *
3445  * @param option List Item SwipeActionItem instance.
3446  * @param userData User defined data.
3447  * @param callback Callback Events.
3448  * @since 12
3449  */
3450 void OH_ArkUI_ListItemSwipeActionItem_SetOnActionWithUserData(ArkUI_ListItemSwipeActionItem* item,
3451     void* userData, void (*callback)(void* userData));
3452 
3453 /**
3454 * @brief Set the event to be called when a sliding entry exits the deletion area.
3455 *
3456 * @param option List Item SwipeActionItem instance.
3457 * @param callback Callback Events.
3458 * @since 12
3459 */
3460 void OH_ArkUI_ListItemSwipeActionItem_SetOnExitActionArea(ArkUI_ListItemSwipeActionItem* item, void (*callback)());
3461 
3462 /**
3463  * @brief Set the event triggered when a sliding entry exits the deletion area.
3464  *
3465  * @param option List Item SwipeActionItem instance.
3466  * @param userData User defined data.
3467  * @param callback Callback Events.
3468  * @since 12
3469  */
3470 void OH_ArkUI_ListItemSwipeActionItem_SetOnExitActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* item,
3471     void* userData, void (*callback)(void* userData));
3472 
3473 /**
3474 * @brief Set the event triggered when the sliding state of a list item changes.
3475 *
3476 * @param option List Item SwipeActionItem instance.
3477 * @param callback Callback Events.
3478 *        swipeActionState The changed state.
3479 * @since 12
3480 */
3481 void OH_ArkUI_ListItemSwipeActionItem_SetOnStateChange(ArkUI_ListItemSwipeActionItem* item,
3482     void (*callback)(ArkUI_ListItemSwipeActionState swipeActionState));
3483 
3484 /**
3485  * @brief Set the event triggered when the sliding state of a list item changes.
3486  *
3487  * @param option List Item SwipeActionItem instance.
3488  * @param userData User defined data.
3489  * @param callback Callback Events.
3490  *        swipeActionState The changed state.
3491  * @since 12
3492  */
3493 void OH_ArkUI_ListItemSwipeActionItem_SetOnStateChangeWithUserData(ArkUI_ListItemSwipeActionItem* item,
3494     void* userData, void (*callback)(ArkUI_ListItemSwipeActionState swipeActionState, void* userData));
3495 
3496 /**
3497  * @brief Create a configuration item for the ListitemSwipeActionOption interface settings.
3498  *
3499  * @return List Item SwipeActionOption configuration item instance.If the object returns a null pointer,
3500  *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
3501  * @since 12
3502 */
3503 ArkUI_ListItemSwipeActionOption* OH_ArkUI_ListItemSwipeActionOption_Create();
3504 
3505 /**
3506 * @brief Destroy the ListitemSwipeActionOption instance.
3507 *
3508 * @param option List Item SwipeActionOption instance to be destroyed.
3509 * @since 12
3510 */
3511 void OH_ArkUI_ListItemSwipeActionOption_Dispose(ArkUI_ListItemSwipeActionOption* option);
3512 
3513 /**
3514 * @brief Set the layout content on the left (vertical layout) or top (horizontal layout)
3515 * of the ListItem SwipeActionItem.
3516 *
3517 * @param option List Item SwipeActionItem instance.
3518 * @param builder Layout information.
3519 * @since 12
3520 */
3521 void OH_ArkUI_ListItemSwipeActionOption_SetStart(ArkUI_ListItemSwipeActionOption* option,
3522     ArkUI_ListItemSwipeActionItem* item);
3523 
3524 /**
3525 * @brief Set the layout content on the right (vertical layout) or bottom (horizontal layout)
3526 * of the ListItem SwipeActionItem.
3527 *
3528 * @param option List Item SwipeActionItem instance.
3529 * @param builder Layout information.
3530 * @since 12
3531 */
3532 void OH_ArkUI_ListItemSwipeActionOption_SetEnd(ArkUI_ListItemSwipeActionOption* option,
3533     ArkUI_ListItemSwipeActionItem* item);
3534 
3535 /**
3536 * @brief Set the sliding effect.
3537 *
3538 * @param option List Item SwipeActionItem instance.
3539 * @param edgeEffect Sliding effect.
3540 * @since 12
3541 */
3542 void OH_ArkUI_ListItemSwipeActionOption_SetEdgeEffect(ArkUI_ListItemSwipeActionOption* option,
3543     ArkUI_ListItemSwipeEdgeEffect edgeEffect);
3544 
3545 /**
3546 * @brief Get the sliding effect.
3547 *
3548 * @param option List Item SwipeActionItem instance.
3549 * @return Sliding effect. The default return value is 0. If -1 is returned, the return fails.
3550 *         The possible cause of the failure is that the option parameter is abnormal, such as a null pointer.
3551 * @since 12
3552 */
3553 int32_t OH_ArkUI_ListItemSwipeActionOption_GetEdgeEffect(ArkUI_ListItemSwipeActionOption* option);
3554 
3555 /**
3556 * @brief The event called when the sliding operation offset changes.
3557 *
3558 * @param option List Item SwipeActionItem instance.
3559 * @param callback Callback Events.
3560 *        offset Slide offset.
3561 * @since 12
3562 */
3563 void OH_ArkUI_ListItemSwipeActionOption_SetOnOffsetChange(ArkUI_ListItemSwipeActionOption* option,
3564     void (*callback)(float offset));
3565 
3566 /**
3567  * @brief Set the event triggered when the sliding operation offset changes.
3568  *
3569  * @param option List Item SwipeActionItem instance.
3570  * @param userData User defined data.
3571  * @param callback Callback Events.
3572  *        offset Slide offset.
3573  * @since 12
3574  */
3575 void OH_ArkUI_ListItemSwipeActionOption_SetOnOffsetChangeWithUserData(ArkUI_ListItemSwipeActionOption* option,
3576     void* userData, void (*callback)(float offset, void* userData));
3577 
3578 /**
3579  * @brief Create configuration items for the ListChildrenMainSize interface settings.
3580  *
3581  * @return ListChildrenMainSize configuration item instance.If the object returns a null pointer,
3582  *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
3583  * @since 12
3584 */
3585 ArkUI_ListChildrenMainSize* OH_ArkUI_ListChildrenMainSizeOption_Create();
3586 
3587 /**
3588 * @brief Destroy the ListChildrenMainSize instance.
3589 *
3590 * @param option The ListChildrenMainSize instance to be destroyed.
3591 * @since 12
3592 */
3593 void OH_ArkUI_ListChildrenMainSizeOption_Dispose(ArkUI_ListChildrenMainSize* option);
3594 
3595 /**
3596  * @brief Set the default size of ChildrenMainSizeOption for the List component.
3597  *
3598  * @param option ListChildrenMainSize instance.
3599  * @param defaultMainSize The default size of the ListItem under the List, measured in vp.
3600  * @return 0 represents success. If defaultMainSize is less than 0 or option is a null pointer, return 401.
3601  * @since 12
3602 */
3603 int32_t OH_ArkUI_ListChildrenMainSizeOption_SetDefaultMainSize(ArkUI_ListChildrenMainSize* option,
3604     float defaultMainSize);
3605 
3606 /**
3607  * @brief Get the default size of ChildrenMainSizeOption for the List component.
3608  *
3609  * @param option ListChildrenMainSize instance.
3610  * @return The default size of the ListItem under the List is 0, measured in vp.
3611  *         When the option is a null pointer, it returns -1.
3612  * @since 12
3613 */
3614 float OH_ArkUI_ListChildrenMainSizeOption_GetDefaultMainSize(ArkUI_ListChildrenMainSize* option);
3615 
3616 /**
3617  * @brief Reset the array size of ChildrenMainSizeOption for the List component.
3618  *
3619  * @param option ListChildrenMainSize instance.
3620  * @param totalSize Array size.
3621  * @since 12
3622 */
3623 void OH_ArkUI_ListChildrenMainSizeOption_Resize(ArkUI_ListChildrenMainSize* option, int32_t totalSize);
3624 
3625 /**
3626  * @brief Resize the ChildrenMainSizeOption array operation on the List component.
3627  *
3628  * @param option ListChildrenMainSize instance.
3629  * @param index To modify the starting position of the MainSize array.
3630  * @param deleteCount The number of MainSize arrays to be deleted starting from index.
3631  * @param addCount The number of MainSize arrays to be added starting from index.
3632  * @return 0 represents success. If the function parameter is abnormal, return 401.
3633  * @since 12
3634 */
3635 int32_t OH_ArkUI_ListChildrenMainSizeOption_Splice(ArkUI_ListChildrenMainSize* option, int32_t index,
3636     int32_t deleteCount, int32_t addCount);
3637 
3638 /**
3639  * @brief Update the value of the ChildrenMainSizeOption array in the List component.
3640  *
3641  * @param option ListChildrenMainSize instance.
3642  * @param index To modify the starting position of the MainSize array.
3643  * @param mainSize The actual modified value.
3644  * @return 0 represents success. If the function parameter is abnormal, return 401.
3645  * @since 12
3646 */
3647 int32_t OH_ArkUI_ListChildrenMainSizeOption_UpdateSize(ArkUI_ListChildrenMainSize* option,
3648     int32_t index, float mainSize);
3649 
3650 /**
3651  * @brief Get the value of the ChildrenMainSizeOption array for the List component.
3652  *
3653  * @param option ListChildrenMainSize instance.
3654  * @param index The index position of the value to be obtained.
3655  * @return The value of the specific position of the array. If the function parameter is abnormal, return -1.
3656  * @since 12
3657 */
3658 float OH_ArkUI_ListChildrenMainSizeOption_GetMainSize(ArkUI_ListChildrenMainSize* option, int32_t index);
3659 
3660 /**
3661  * @brief Creates measurement information for this custom span.
3662  *
3663  * @return Returns a <b>CustomSpanMeasureInfo</b> instance.
3664  * <br> If the result returns nullptr, there may be out of memory.
3665  * @since 12
3666 */
3667 ArkUI_CustomSpanMeasureInfo* OH_ArkUI_CustomSpanMeasureInfo_Create(void);
3668 
3669 /**
3670  * @brief Disposes of measurement information of this custom span.
3671  *
3672  * @param info The CustomSpanMeasureInfo instance to be destroyed.
3673  * @since 12
3674 */
3675 void OH_ArkUI_CustomSpanMeasureInfo_Dispose(ArkUI_CustomSpanMeasureInfo* info);
3676 
3677 /**
3678  * @brief Obtains the font size of a custom span.
3679  *
3680  * @param info Indicates the pointer to the measurement information of a custom span.
3681  * @return Returns the font size. If a parameter error occurs, <b>0.0f</b> is returned.
3682  * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
3683  * @since 12
3684 */
3685 float OH_ArkUI_CustomSpanMeasureInfo_GetFontSize(ArkUI_CustomSpanMeasureInfo* info);
3686 
3687 /**
3688  * @brief Creates measurement metrics for this custom span.
3689  *
3690  * @return Returns a <b>CustomSpanMetrics</b> instance.
3691  * <br> If the result returns nullptr, there may be out of memory.
3692  * @since 12
3693 */
3694 ArkUI_CustomSpanMetrics* OH_ArkUI_CustomSpanMetrics_Create(void);
3695 
3696 /**
3697  * @brief Disposes of measurement metrics of this custom span.
3698  *
3699  * @param info The CustomSpanMetrics instance to be destroyed.
3700  * @since 12
3701 */
3702 void OH_ArkUI_CustomSpanMetrics_Dispose(ArkUI_CustomSpanMetrics* metrics);
3703 
3704 /**
3705  * @brief Sets the width for a custom span.
3706  *
3707  * @param metrics Indicates the pointer to a <b>CustomSpanMetrics</b> instance.
3708  * @param width Indicates the width, in px. The width should be greater than 0.
3709  * @return Returns the result code.
3710  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
3711  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
3712  *         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
3713  * @since 12
3714 */
3715 int32_t OH_ArkUI_CustomSpanMetrics_SetWidth(ArkUI_CustomSpanMetrics* metrics, float width);
3716 
3717 /**
3718  * @brief Sets the height for a custom span.
3719  *
3720  * @param metrics Indicates the pointer to a <b>CustomSpanMetrics</b> instance.
3721  * @param width Indicates the height, in px. The width should be greater than 0.
3722  * @return Returns the result code.
3723  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
3724  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
3725  *         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
3726  * @since 12
3727 */
3728 int32_t OH_ArkUI_CustomSpanMetrics_SetHeight(ArkUI_CustomSpanMetrics* metrics, float height);
3729 
3730 /**
3731  * @brief Creates drawing information for this custom span.
3732  *
3733  * @return Returns a <b>CustomSpanDrawInfo</b> instance.
3734  * <br> If the result returns nullptr, there may be out of memory.
3735  * @since 12
3736 */
3737 ArkUI_CustomSpanDrawInfo* OH_ArkUI_CustomSpanDrawInfo_Create(void);
3738 
3739 /**
3740  * @brief Disposes of drawing information for this custom span.
3741  *
3742  * @param info The CustomSpanDrawInfo instance to be destroyed.
3743  * @since 12
3744 */
3745 void OH_ArkUI_CustomSpanDrawInfo_Dispose(ArkUI_CustomSpanDrawInfo* info);
3746 
3747 /**
3748  * @brief Obtains the x-axis offset of the custom span relative to the mounted component.
3749  *
3750  * @param info Indicates the pointer to the drawing information of a custom span.
3751  * @return Returns the x-axis offset. If a parameter error occurs, <b>0.0f</b> is returned.
3752  * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
3753  * @since 12
3754 */
3755 float OH_ArkUI_CustomSpanDrawInfo_GetXOffset(ArkUI_CustomSpanDrawInfo* info);
3756 
3757 /**
3758  * @brief Obtains the top margin of the custom span relative to the mounted component.
3759  *
3760  * @param info Indicates the pointer to the drawing information of a custom span.
3761  * @return Returns the top margin. If a parameter error occurs, <b>0.0f</b> is returned.
3762  * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
3763  * @since 12
3764 */
3765 float OH_ArkUI_CustomSpanDrawInfo_GetLineTop(ArkUI_CustomSpanDrawInfo* info);
3766 
3767 /**
3768  * @brief Obtains the bottom margin of the custom span relative to the mounted component.
3769  *
3770  * @param info Indicates the pointer to the drawing information of a custom span.
3771  * @return Returns the bottom margin. If a parameter error occurs, <b>0.0f</b> is returned.
3772  * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
3773  * @since 12
3774 */
3775 float OH_ArkUI_CustomSpanDrawInfo_GetLineBottom(ArkUI_CustomSpanDrawInfo* info);
3776 
3777 /**
3778  * @brief Obtains the baseline offset of the custom span relative to the mounted component.
3779  *
3780  * @param info Indicates the pointer to the drawing information of a custom span.
3781  * @return Returns the baseline offset. If a parameter error occurs, <b>0.0f</b> is returned.
3782  * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
3783  * @since 12
3784 */
3785 float OH_ArkUI_CustomSpanDrawInfo_GetBaseline(ArkUI_CustomSpanDrawInfo* info);
3786 
3787 /**
3788  * @brief Create a image frame from the image path.
3789  * @param src Indicates the image path.
3790  * @return Returns the pointer to the image frame object.
3791  * If a null pointer is returned, the object fails to be created. The possible cause is that
3792  * the src parameter is abnormal, for example, the pointer is null.
3793  * @since 12
3794 */
3795 ArkUI_ImageAnimatorFrameInfo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromString(char* src);
3796 
3797 /**
3798  * @brief Create a image frame from the drawable descriptor.
3799  *
3800  * @param drawable Indicates the pointer to the drawable descriptor.
3801  * @return Returns the pointer to the image frame object.
3802  * If a null pointer is returned, the object fails to be created. The possible cause is that
3803  * the drawable parameter is abnormal, for example, the pointer is null.
3804  * @since 12
3805 */
3806 ArkUI_ImageAnimatorFrameInfo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromDrawableDescriptor(
3807     ArkUI_DrawableDescriptor* drawable);
3808 
3809 /**
3810  * @brief Destroy the pointer to the image frame.
3811  *
3812  * @param imageInfo Indicates the pointer to the image frame.
3813  * @since 12
3814 */
3815 void OH_ArkUI_ImageAnimatorFrameInfo_Dispose(ArkUI_ImageAnimatorFrameInfo* imageInfo);
3816 
3817 /**
3818  * @brief Set the width of the image frame.
3819  *
3820  * @param imageInfo Indicates the pointer to the image frame.
3821  * @param width Indicates the width of the image frame, and the unit is PX.
3822  * @since 12
3823 */
3824 void OH_ArkUI_ImageAnimatorFrameInfo_SetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t width);
3825 
3826 /**
3827  * @brief Get the width of the image frame.
3828  *
3829  * @param imageInfo Indicates the pointer to the image frame.
3830  * @return Return the width of the image frame, and the unit is PX. Return 0 when the imageInfo is null.
3831  * @since 12
3832 */
3833 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfo);
3834 
3835 /**
3836  * @brief Set the height of the image frame.
3837  *
3838  * @param imageInfo Indicates the pointer to the image frame.
3839  * @param height Indicates the height of the image frame, and the unit is PX.
3840  * @since 12
3841 */
3842 void OH_ArkUI_ImageAnimatorFrameInfo_SetHeight(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t height);
3843 
3844 /**
3845  * @brief Get the height of the image frame.
3846  *
3847  * @param imageInfo Indicates the pointer to the image frame.
3848  * @return Return the height of the image frame, and the unit is PX. Return 0 when the imageInfo is null.
3849  * @since 12
3850 */
3851 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetHeight(ArkUI_ImageAnimatorFrameInfo* imageInfo);
3852 
3853 /**
3854  * @brief Set the vertical coordinate of the image relative to the upper left corner of the widget.
3855  *
3856  * @param imageInfo Indicates the pointer to the image frame.
3857  * @param top Indicates the vertical coordinate of the image relative to the upper left corner of the widget,
3858  * and the unit is PX.
3859  * @since 12
3860 */
3861 void OH_ArkUI_ImageAnimatorFrameInfo_SetTop(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t top);
3862 
3863 /**
3864  * @brief Get the vertical coordinate of the image relative to the upper left corner of the widget.
3865  *
3866  * @param imageInfo Indicates the pointer to the image frame.
3867  * @return Returns the vertical coordinate of the image relative to the upper left corner of the widget,
3868  * and the unit is PX. Return 0 when the imageInfo is null.
3869  * @since 12
3870 */
3871 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetTop(ArkUI_ImageAnimatorFrameInfo* imageInfo);
3872 
3873 /**
3874  * @brief Set the horizontal coordinate of the image relative to the upper left corner of the widget.
3875  *
3876  * @param imageInfo Indicates the pointer to the image frame.
3877  * @param left Indicates the horizontal coordinate of the image relative to the upper left corner of the widget,
3878  * and the unit is PX.
3879  * @since 12
3880 */
3881 void OH_ArkUI_ImageAnimatorFrameInfo_SetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t left);
3882 
3883 /**
3884  * @brief Get the horizontal coordinate of the image relative to the upper left corner of the widget.
3885  *
3886  * @param imageInfo Indicates the pointer to the image frame.
3887  * @return Returns the horizontal coordinate of the image relative to the upper left corner of the widget,
3888  * and the unit is PX. Return 0 when the imageInfo is null.
3889  * @since 12
3890 */
3891 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfo);
3892 
3893 /**
3894  * @brief Set the playback duration of the image frame.
3895  *
3896  * @param imageInfo Indicates the pointer to the image frame.
3897  * @param duration Indicates the playback duration of each image frame, and the unit is milliseconds.
3898  * @since 12
3899 */
3900 void OH_ArkUI_ImageAnimatorFrameInfo_SetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t duration);
3901 
3902 /**
3903  * @brief Get the playback duration of the image frame.
3904  *
3905  * @param imageInfo Indicates the pointer to the image frame.
3906  * @return Returns the playback duration of the image frame, and the unit is milliseconds.
3907  * Return 0 when the imageInfo is null.
3908  * @since 12
3909 */
3910 int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo);
3911 
3912 /**
3913  * @brief Create accessibility state.
3914  *
3915  * @return Returns the pointer to the accessibility state object.
3916  * If a null pointer is returned, the object fails to be created. The possible cause is that the address space is full.
3917  * @since 12
3918 */
3919 ArkUI_AccessibilityState* OH_ArkUI_AccessibilityState_Create(void);
3920 
3921 /**
3922 * @brief Dispose accessibility state.
3923 *
3924 * @param state accessibility state object.
3925 * @since 12
3926 */
3927 void OH_ArkUI_AccessibilityState_Dispose(ArkUI_AccessibilityState* state);
3928 
3929 /**
3930  * @brief Set accessibility state disabled.
3931  *
3932  * @param state accessibility state object.
3933  * @param isDisabled accessibility state disabled, Value 1 indicates disabled and 0 indicates enbled.
3934  * @since 12
3935 */
3936 void OH_ArkUI_AccessibilityState_SetDisabled(ArkUI_AccessibilityState* state, int32_t isDisabled);
3937 
3938 /**
3939  * @brief Get accessibility state disabled.
3940  *
3941  * @param state accessibility state object.
3942  * @return accessibility state disabled, Value 1 indicates disabled and 0 indicates enbled. The default value is 0.
3943  *         If the function parameter is abnormal, return the default value.
3944  * @since 12
3945 */
3946 int32_t OH_ArkUI_AccessibilityState_IsDisabled(ArkUI_AccessibilityState* state);
3947 
3948 /**
3949  * @brief Set accessibility state selected.
3950  *
3951  * @param state accessibility state object.
3952  * @param isSelected accessibility state selected, Value 1 indicates selected, and 0 indicates not selected.
3953  *        The default value is 0.
3954  * @since 12
3955 */
3956 void OH_ArkUI_AccessibilityState_SetSelected(ArkUI_AccessibilityState* state, int32_t isSelected);
3957 
3958 /**
3959  * @brief Get accessibility state selected.
3960  *
3961  * @param state accessibility state object.
3962  * @return accessibility state selected, Value 1 indicates selected, and 0 indicates not selected.
3963  *         The default value is 0.
3964  *         If the function parameter is abnormal, return the default value.
3965  * @since 12
3966 */
3967 int32_t OH_ArkUI_AccessibilityState_IsSelected(ArkUI_AccessibilityState* state);
3968 
3969 /**
3970  * @brief Set accessibility checked state.
3971  *
3972  * @param state accessibility state object.
3973  * @param checkedState checked state, and uses the {@link ArkUI_AccessibilityCheckedState} enumeration value,
3974  *        The default value is ARKUI_ACCESSIBILITY_UNCHECKED.
3975  * @since 12
3976 */
3977 void OH_ArkUI_AccessibilityState_SetCheckedState(ArkUI_AccessibilityState* state, int32_t checkedState);
3978 
3979 /**
3980  * @brief Get accessibility checked state.
3981  *
3982  * @param state accessibility state object.
3983  * @return checked state, and uses the {@link ArkUI_AccessibilityCheckedState} enumeration value,
3984  *         The default value is ARKUI_ACCESSIBILITY_UNCHECKED.
3985  *         If the function parameter is abnormal, return the default value.
3986  * @since 12
3987 */
3988 int32_t OH_ArkUI_AccessibilityState_GetCheckedState(ArkUI_AccessibilityState* state);
3989 
3990 /**
3991  * @brief Create accessibility value.
3992  *
3993  * @return Returns the pointer to the accessibility state object.
3994  * If a null pointer is returned, the object fails to be created. The possible cause is that the address space is full.
3995  * @since 12
3996 */
3997 ArkUI_AccessibilityValue* OH_ArkUI_AccessibilityValue_Create(void);
3998 
3999 /**
4000 * @brief Dispose accessibility value.
4001 *
4002 * @param value accessibility value object.
4003 * @since 12
4004 */
4005 void OH_ArkUI_AccessibilityValue_Dispose(ArkUI_AccessibilityValue* value);
4006 
4007 /**
4008  * @brief Set accessibility minimum value.
4009  *
4010  * @param value accessibility value object.
4011  * @param min minimum value based on range components, The default value is -1.
4012  * @since 12
4013 */
4014 void OH_ArkUI_AccessibilityValue_SetMin(ArkUI_AccessibilityValue* value, int32_t min);
4015 
4016 /**
4017  * @brief Get accessibility minimum value.
4018  *
4019  * @param value accessibility value object.
4020  * @return minimum value based on range components, The default value is -1.
4021  *         If the function parameter is abnormal, return -1.
4022  * @since 12
4023 */
4024 int32_t OH_ArkUI_AccessibilityValue_GetMin(ArkUI_AccessibilityValue* value);
4025 
4026 /**
4027  * @brief Set accessibility minimum value.
4028  *
4029  * @param value accessibility value object.
4030  * @param max maximum value based on range components, The default value is -1.
4031  * @since 12
4032 */
4033 void OH_ArkUI_AccessibilityValue_SetMax(ArkUI_AccessibilityValue* value, int32_t max);
4034 
4035 /**
4036  * @brief Get accessibility minimum value.
4037  *
4038  * @param value accessibility value object.
4039  * @return maximum value based on range components, The default value is -1.
4040  *         If the function parameter is abnormal, return -1.
4041  * @since 12
4042 */
4043 int32_t OH_ArkUI_AccessibilityValue_GetMax(ArkUI_AccessibilityValue* value);
4044 
4045 /**
4046  * @brief Set accessibility current value.
4047  *
4048  * @param value accessibility value object.
4049  * @param current value based on range components, The default value is -1.
4050  * @since 12
4051 */
4052 void OH_ArkUI_AccessibilityValue_SetCurrent(ArkUI_AccessibilityValue* value, int32_t current);
4053 
4054 /**
4055  * @brief Get accessibility current value.
4056  *
4057  * @param value accessibility value object.
4058  * @return current value based on range components, The default value is -1.
4059  *         If the function parameter is abnormal, return -1.
4060  * @since 12
4061 */
4062 int32_t OH_ArkUI_AccessibilityValue_GetCurrent(ArkUI_AccessibilityValue* value);
4063 
4064 /**
4065  * @brief Set accessibility text value.
4066  *
4067  * @param value accessibility value object.
4068  * @param text The textual description information of the component, which defaults to an empty string.
4069  * @since 12
4070 */
4071 void OH_ArkUI_AccessibilityValue_SetText(ArkUI_AccessibilityValue* value, const char* text);
4072 
4073 /**
4074  * @brief Get accessibility text value.
4075  *
4076  * @param value accessibility value object.
4077  * @return The textual description information of the component, which defaults to an empty string;
4078  *         If the function parameter is abnormal, return null.
4079  * @since 12
4080 */
4081 const char* OH_ArkUI_AccessibilityValue_GetText(ArkUI_AccessibilityValue* value);
4082 
4083 /**
4084  * @brief Destroy the instance of Customs Property.
4085  *
4086  * @param handle The instance of Customs Property to be destroyed.
4087  * @since 14
4088  */
4089 void OH_ArkUI_CustomProperty_Destroy(ArkUI_CustomProperty* handle);
4090 
4091 /**
4092  * @brief Get custom attribute value information.
4093  *
4094  * @param handle Custom attribute object pointer.
4095  * @return Customize the value information within the attribute structure.
4096  * @since 14
4097  */
4098 const char* OH_ArkUI_CustomProperty_GetStringValue(ArkUI_CustomProperty* handle);
4099 
4100 /**
4101  * @brief Get window name from HostWindowInfo.
4102  *
4103  * @param info HostWindowInfo object pointer.
4104  * @return Window name in HostWindowInfo.
4105  * @since 15
4106  */
4107 const char* OH_ArkUI_HostWindowInfo_GetName(ArkUI_HostWindowInfo* info);
4108 
4109 /**
4110  * @brief Destroy the instance of HostWindowInfo.
4111  *
4112  * @param info Instance of HostWindowInfo to be destroyed.
4113  * @since 15
4114  */
4115 void OH_ArkUI_HostWindowInfo_Destroy(ArkUI_HostWindowInfo* info);
4116 
4117 /**
4118  * @brief Destroy ActiveChildenInfo instance.
4119  *
4120  * @param handle ActiveChild instance to be destroyed.
4121  * @since 14
4122  */
4123 void OH_ArkUI_ActiveChildrenInfo_Destroy(ArkUI_ActiveChildrenInfo* handle);
4124 
4125 /**
4126  * @brief Retrieve the child nodes of ActiveChildenInfo with the structure index.
4127  *
4128  * @param handle The ActiveChildenInfo instance for obtaining information.
4129  * @param index The index of child nodes.
4130  * @return The child node pointer corresponding to the index. Return nullptr in case of exception.
4131  * @since 14
4132  */
4133 ArkUI_NodeHandle OH_ArkUI_ActiveChildrenInfo_GetNodeByIndex(ArkUI_ActiveChildrenInfo* handle, int32_t index);
4134 
4135 /**
4136  * @brief Retrieve the number of nodes within the structure of ActiveChildenInfo.
4137  *
4138  * @param handle The ActiveChildenInfo instance for obtaining information.
4139  * @return Number of child nodes. Default value: 0.
4140  * @since 14
4141  */
4142 int32_t OH_ArkUI_ActiveChildrenInfo_GetCount(ArkUI_ActiveChildrenInfo* handle);
4143 
4144 /**
4145  * @brief Create linear progress indicator style information.
4146  *
4147  * @return Returns a <b>ProgressLinearStyleOption</b> instance.
4148  * <br> If the result returns nullptr, there may be out of memory.
4149  * @since 15
4150  */
4151 ArkUI_ProgressLinearStyleOption* OH_ArkUI_ProgressLinearStyleOption_Create(void);
4152 
4153 /**
4154  * @brief Destroy linear progress indicator style information.
4155  *
4156  * @param option Linear progress indicator style information.
4157  * @since 15
4158  */
4159 void OH_ArkUI_ProgressLinearStyleOption_Destroy(ArkUI_ProgressLinearStyleOption* option);
4160 
4161 /**
4162  * @brief Set whether the scan effect is enabled.
4163  *
4164  * @param option Linear progress indicator style information.
4165  * @param enabled Whether to enable the scan effect. Default value: false.
4166  * @since 15
4167  */
4168 void OH_ArkUI_ProgressLinearStyleOption_SetScanEffectEnabled(ArkUI_ProgressLinearStyleOption* option, bool enabled);
4169 
4170 /**
4171  * @brief Set whether smoothing effect is enabled.
4172  *
4173  * @param option Linear progress indicator style information.
4174  * @param enabled Whether to enable the smooth effect. When this effect is enabled, the progress change to
4175  * the set value takes place gradually. Otherwise, it takes place immediately. Default value: true.
4176  * @since 15
4177  */
4178 void OH_ArkUI_ProgressLinearStyleOption_SetSmoothEffectEnabled(ArkUI_ProgressLinearStyleOption* option, bool enabled);
4179 
4180 /**
4181  * @brief Set linear progress indicator stroke width.
4182  *
4183  * @param option Linear progress indicator style information.
4184  * @param strokeWidth Stroke width of the progress indicator. It cannot be set in percentage.
4185  * Default value: 4.0vp.
4186  * @since 15
4187  */
4188 void OH_ArkUI_ProgressLinearStyleOption_SetStrokeWidth(ArkUI_ProgressLinearStyleOption* option, float strokeWidth);
4189 
4190 /**
4191  * @brief Set linear progress indicator stroke radius.
4192  *
4193  * @param option Linear progress indicator style information.
4194  * @param strokeRadius Rounded corner radius of the progress indicator. Value range: [0, strokeWidth/2].
4195  * Default value: strokeWidth/2.
4196  * @since 15
4197  */
4198 void OH_ArkUI_ProgressLinearStyleOption_SetStrokeRadius(ArkUI_ProgressLinearStyleOption* option, float strokeRadius);
4199 
4200 /**
4201  * @brief Get whether scan effect is enable.
4202  *
4203  * @param option Linear progress indicator style information.
4204  * @return Whether to enable the scan effect.
4205  * @since 15
4206  */
4207 bool OH_ArkUI_ProgressLinearStyleOption_GetScanEffectEnabled(ArkUI_ProgressLinearStyleOption* option);
4208 
4209 /**
4210  * @brief Get whether smoothing effect is enabled.
4211  *
4212  * @param option Linear progress indicator style information.
4213  * @return Whether to enable the smooth effect.
4214  * @since 15
4215  */
4216 bool OH_ArkUI_ProgressLinearStyleOption_GetSmoothEffectEnabled(ArkUI_ProgressLinearStyleOption* option);
4217 
4218 /**
4219  * @brief Get linear progress indicator stroke width.
4220  *
4221  * @param option Linear progress indicator style information.
4222  * @return Stroke width of the progress indicator.
4223  * @since 15
4224  */
4225 float OH_ArkUI_ProgressLinearStyleOption_GetStrokeWidth(ArkUI_ProgressLinearStyleOption* option);
4226 
4227 /**
4228  * @brief Get linear progress indicator stroke radius.
4229  *
4230  * @param option Linear progress indicator style information.
4231  * @return Rounded corner radius of the progress indicator.
4232  * @since 15
4233  */
4234 float OH_ArkUI_ProgressLinearStyleOption_GetStrokeRadius(ArkUI_ProgressLinearStyleOption* option);
4235 
4236 /**
4237  * @brief Creates an option for taking snapshot, the returned value must be released through
4238  *        {@link OH_ArkUI_DestroySnapshotOptions} when it's not used anymore.
4239  *
4240  * @return Returns the pointer to the created snapshot options object.If the object returns a null pointer,
4241  *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
4242  * @since 15
4243  */
4244 ArkUI_SnapshotOptions* OH_ArkUI_CreateSnapshotOptions();
4245 
4246 /**
4247  * @brief Dispose a snapshot option object.
4248  *
4249  * @param snapshotOptions Indicates the pointer to the snapshot option.
4250  * @since 15
4251  */
4252 void OH_ArkUI_DestroySnapshotOptions(ArkUI_SnapshotOptions* snapshotOptions);
4253 
4254 /**
4255  * @brief Config the snapshot option with scale.
4256  *
4257  * @param snapshotOptions Indicates the pointer to the snapshot option.
4258  * @param scale Indicates the scale property to take the snapshot.
4259  * @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
4260  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
4261  * @since 15
4262  */
4263 int32_t OH_ArkUI_SnapshotOptions_SetScale(ArkUI_SnapshotOptions* snapshotOptions, float scale);
4264 
4265 /**
4266  * @brief Create a cross-language option instance.
4267  *
4268  * @return Returns a cross-language option instance. If the result is a null pointer, it may be out of memory.
4269  * @since 15
4270  */
4271 ArkUI_CrossLanguageOption* OH_ArkUI_CrossLanguageOption_Create(void);
4272 
4273 /**
4274  * @brief Destroy the cross-language option instance.
4275  *
4276  * @param option The cross-language option instance.
4277  * @since 15
4278  */
4279 void OH_ArkUI_CrossLanguageOption_Destroy(ArkUI_CrossLanguageOption* option);
4280 
4281 /**
4282  * @brief Enable the attribute setting in the cross-language option.
4283  *
4284  * @param option The cross-language option.
4285  * @param enabled The attribute setting in the cross-language option.
4286  * Default value: false.
4287  * @since 15
4288  */
4289 void OH_ArkUI_CrossLanguageOption_SetAttributeSettingStatus(ArkUI_CrossLanguageOption* option, bool enabled);
4290 
4291 /**
4292  * @brief Get the attribute setting enable of the cross-language option.
4293  *
4294  * @param option The cross-language option.
4295  * @return The attribute setting enable of the cross-language option.
4296  * @since 15
4297  */
4298 bool OH_ArkUI_CrossLanguageOption_GetAttributeSettingStatus(ArkUI_CrossLanguageOption* option);
4299 
4300 #ifdef __cplusplus
4301 };
4302 #endif
4303 
4304 #endif // ARKUI_NATIVE_TYPE_H
4305 /** @} */
4306