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