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