• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2023 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 #ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_BASE_LAYOUT_CONSTANTS_H
17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_BASE_LAYOUT_CONSTANTS_H
18 
19 #include <cstdint>
20 #include "base/utils/linear_map.h"
21 #include "base/utils/utils.h"
22 
23 namespace OHOS::Ace {
24 
25 enum class LineCap {
26     BUTT,
27     ROUND,
28     SQUARE,
29 };
30 
31 enum class ButtonType {
32     NORMAL,
33     CAPSULE,
34     CIRCLE,
35     TEXT,
36     ARC,
37     DOWNLOAD,
38     ICON,
39     CUSTOM,
40     ROUNDED_RECTANGLE,
41 };
42 
43 enum class RectWidthStyle {
44     TIGHT,
45     MAX,
46 };
47 
48 enum class RectHeightStyle {
49     TIGHT,
50     MAX,
51     INCLUDE_LINE_SPACE_MIDDLE,
52     INCLUDE_LINE_SPACE_TOP,
53     INCLUDE_LINE_SPACE_BOTTOM,
54     STRUT,
55 };
56 
57 // Type of hover mode area.
58 enum class HoverModeAreaType {
59     TOP_SCREEN = 0,
60     BOTTOM_SCREEN = 1,
61 };
62 
63 enum class ButtonStyleMode { NORMAL, EMPHASIZE, TEXT };
64 
65 enum class ControlSize { SMALL, NORMAL };
66 
67 enum class ButtonRole { NORMAL, ERROR };
68 
69 // Flex Styles
70 enum class FlexDirection {
71     ROW = 0,
72     COLUMN,
73     ROW_REVERSE,
74     COLUMN_REVERSE,
75 };
76 
77 enum class FlexAlign {
78     AUTO,
79 
80     // align to the start of the axis, can be both used in MainAxisAlign and CrossAxisAlign.
81     FLEX_START,
82 
83     // align to the center of the axis, can be both used in MainAxisAlign and CrossAxisAlign.
84     CENTER,
85 
86     // align to the end of the axis, can be both used in MainAxisAlign and CrossAxisAlign.
87     FLEX_END,
88 
89     // stretch the cross size, only used in CrossAxisAlign.
90     STRETCH,
91 
92     // adjust the cross position according to the textBaseline, only used in CrossAxisAlign.
93     BASELINE,
94 
95     // align the children on both ends, only used in MainAxisAlign.
96     SPACE_BETWEEN,
97 
98     // align the child with equivalent space, only used in MainAxisAlign.
99     SPACE_AROUND,
100 
101     // align the child with space evenly, only used in MainAxisAlign.
102     SPACE_EVENLY,
103 
104     // User-defined space, only used in MainAxisAlign.
105     SPACE_CUSTOMIZATION,
106 };
107 
108 enum class MainAxisSize {
109     // default setting, fill the max size of the layout param. Only under MAX, mainAxisAlign and FlexItem are valid
110     MAX,
111 
112     // make the size of row/column as large as its children's size.
113     MIN,
114 };
115 
116 enum class CrossAxisSize {
117     // fill the max size of the layout param in cross size of row/column.
118     MAX,
119 
120     // make the cross size of row/column as large as its children's size.
121     MIN,
122 };
123 
124 enum class FlexLayoutMode {
125     // If children do not contains flex weight, use this mode. It is the default mode.
126     FLEX_ITEM_MODE,
127 
128     // If all the children contains flex weight, use this mode.
129     FLEX_WEIGHT_MODE,
130 };
131 
132 // Box Style
133 enum class BoxFlex {
134     // width and height do not extend to box's parent
135     FLEX_NO,
136 
137     // width extends to box's parent, height does not extend to box's parent
138     FLEX_X,
139 
140     // height extends to box's parent, width does not extend to box's parent
141     FLEX_Y,
142 
143     // width and height extend to box's parent
144     FLEX_XY,
145 };
146 
147 enum class BoxSizing {
148     // The width and height properties includes only the content. Border and padding are not included.
149     CONTENT_BOX,
150 
151     // The width and height properties includes content, padding and border.
152     BORDER_BOX,
153 };
154 
155 // Stack Styles
156 enum class StackFit {
157     // keep the child component's size as it is.
158     KEEP,
159 
160     // keep the child component's size as the parent's.
161     STRETCH,
162 
163     // use parent's layoutParam to layout the child
164     INHERIT,
165 
166     // use first child's size as layoutPram max size.
167     FIRST_CHILD,
168 };
169 
170 enum class Overflow {
171     // when the size overflows, clip the exceeding.
172     CLIP,
173 
174     // when the size overflows, observe the exceeding.
175     OBSERVABLE,
176 
177     // when the size overflows, scroll the exceeding.
178     SCROLL,
179 
180     // force clip the exceeding.
181     FORCE_CLIP,
182 };
183 
184 enum class MainStackSize { MAX, MIN, NORMAL, LAST_CHILD_HEIGHT, MATCH_CHILDREN, MAX_X, MAX_Y };
185 
186 enum class MainSwiperSize { MAX, MAX_X, MAX_Y, MIN, AUTO };
187 
188 enum class PositionType {
189     PTRELATIVE = 0,
190     PTFIXED,
191     PTABSOLUTE,
192     PTOFFSET,        // percentage layout based on RELATIVE
193     PTSEMI_RELATIVE, // absolute offset based on RELATIVE
194 };
195 
196 enum class TextAlign {
197     LEFT = 4,
198     RIGHT = 5,
199     CENTER = 1,
200     /*
201         render the text to fit the size of the text container by adding space
202     */
203     JUSTIFY = 3,
204     /*
205         align the text from the start of the text container
206 
207         For Direction.ltr, from left side
208         For Direction.rtl, from right side
209     */
210     START = 0,
211     /*
212         align the text from the end of the text container
213 
214         For Direction.ltr, from right side
215         For Direction.rtl, from left side
216     */
217     END = 2,
218 };
219 
220 namespace StringUtils {
ToString(const TextAlign & textAlign)221 inline std::string ToString(const TextAlign& textAlign)
222 {
223     static const LinearEnumMapNode<TextAlign, std::string> table[] = {
224         { TextAlign::LEFT, "LEFT" },
225         { TextAlign::RIGHT, "RIGHT" },
226         { TextAlign::CENTER, "CENTER" },
227         { TextAlign::JUSTIFY, "JUSTIFY" },
228         { TextAlign::START, "START" },
229         { TextAlign::END, "END" },
230     };
231     auto iter = BinarySearchFindIndex(table, ArraySize(table), textAlign);
232     return iter != -1 ? table[iter].value : "";
233 }
234 } // namespace StringUtils
235 
236 enum class TextDataDetectType {
237     PHONE_NUMBER = 0,
238     URL,
239     EMAIL,
240     ADDRESS,
241     DATE_TIME,
242 };
243 
244 enum class LineBreakStrategy {
245     GREEDY = 0,
246     HIGH_QUALITY,
247     BALANCED,
248 };
249 
250 enum class WhiteSpace {
251     NORMAL,
252     PRE,
253     PRE_WRAP,
254     NOWRAP,
255     PRE_LINE,
256     INHERIT,
257 };
258 
259 enum class TextOverflow {
260     NONE,
261     CLIP,
262     ELLIPSIS,
263     MARQUEE,
264     DEFAULT,
265 };
266 
267 enum class TextSelectableMode {
268     SELECTABLE_UNFOCUSABLE = 0,
269     SELECTABLE_FOCUSABLE,
270     UNSELECTABLE,
271 };
272 
273 namespace StringUtils {
ToString(const TextOverflow & textOverflow)274 inline std::string ToString(const TextOverflow& textOverflow)
275 {
276     static const LinearEnumMapNode<TextOverflow, std::string> table[] = {
277         { TextOverflow::NONE, "NONE" },
278         { TextOverflow::CLIP, "CLIP" },
279         { TextOverflow::ELLIPSIS, "ELLIPSIS" },
280         { TextOverflow::MARQUEE, "MARQUEE" },
281     };
282     auto iter = BinarySearchFindIndex(table, ArraySize(table), textOverflow);
283     return iter != -1 ? table[iter].value : "";
284 }
285 } // namespace StringUtils
286 
287 enum class TextDirection {
288     LTR,
289     RTL,
290     INHERIT,
291     AUTO,
292 };
293 
294 enum class TextDecoration {
295     NONE,
296     UNDERLINE,
297     OVERLINE,
298     LINE_THROUGH,
299     INHERIT,
300 };
301 
302 enum class TextDecorationStyle {
303     SOLID,
304     DOUBLE,
305     DOTTED,
306     DASHED,
307     WAVY,
308     INITIAL,
309     INHERIT,
310 };
311 
312 enum class TextHeightAdaptivePolicy {
313     MAX_LINES_FIRST,
314     MIN_FONT_SIZE_FIRST,
315     LAYOUT_CONSTRAINT_FIRST,
316 };
317 
318 enum class MarqueeDirection {
319     LEFT,
320     RIGHT,
321 };
322 
323 enum class ImageRepeat {
324     NO_REPEAT = 0,
325     REPEAT_X,
326     REPEAT_Y,
327     REPEAT,
328 };
329 
330 enum class ImageFit {
331     FILL,
332     CONTAIN,
333     COVER,
334     FITWIDTH,
335     FITHEIGHT,
336     NONE,
337     SCALE_DOWN,
338     TOP_LEFT,
339     TOP,
340     TOP_END,
341     START,
342     CENTER,
343     END,
344     BOTTOM_START,
345     BOTTOM,
346     BOTTOM_END,
347     COVER_TOP_LEFT,
348     MATRIX,
349 };
350 
351 enum class KeyboardAppearance {
352     NONE_IMMERSIVE = 0,
353     IMMERSIVE = 1,
354     LIGHT_IMMERSIVE = 2,
355     DARK_IMMERSIVE = 3
356 };
357 
358 enum class DynamicRangeMode {
359     HIGH = 0,
360     CONSTRAINT,
361     STANDARD,
362 };
363 
364 enum class AIImageQuality {
365     NONE = 0,
366     LOW,
367     NORMAL,
368     HIGH,
369 };
370 
371 enum class ImageRotateOrientation {
372     AUTO = 0,
373     UP = 1,
374     RIGHT = 2,
375     DOWN = 3,
376     LEFT = 4,
377 };
378 
379 enum class ImageRenderMode {
380     ORIGINAL = 0,
381     TEMPLATE,
382 };
383 
384 enum class ImageInterpolation {
385     NONE = 0,
386     LOW,
387     MEDIUM,
388     HIGH,
389 };
390 
391 enum class EdgeEffect {
392     SPRING = 0,
393     FADE,
394     NONE,
395 };
396 
397 enum class BorderStyle {
398     SOLID,
399     DASHED,
400     DOTTED,
401     NONE,
402 };
403 
404 enum class BorderImageRepeat {
405     SPACE,
406     STRETCH,
407     REPEAT,
408     ROUND,
409 };
410 
411 enum class BorderImageDirection {
412     LEFT,
413     RIGHT,
414     TOP,
415     BOTTOM,
416     START,
417     END,
418 };
419 
420 enum class TimePickerFormat {
421     HOUR_MINUTE,
422     HOUR_MINUTE_SECOND
423 };
424 
425 enum class SrcType {
426     UNSUPPORTED = -1,
427     FILE = 0,
428     ASSET,
429     NETWORK,
430     MEMORY,
431     BASE64,
432     INTERNAL, // internal cached file resource
433     RESOURCE,
434     DATA_ABILITY,
435     DATA_ABILITY_DECODED,
436     RESOURCE_ID, // default resource which src is internal resource id
437     PIXMAP,
438     ASTC,
439 };
440 
441 enum class WrapAlignment {
442     START,
443     CENTER,
444     END,
445     SPACE_AROUND,
446     SPACE_BETWEEN,
447     STRETCH,
448     SPACE_EVENLY,
449     BASELINE,
450 };
451 
452 enum class WrapDirection {
453     HORIZONTAL,
454     VERTICAL,
455     HORIZONTAL_REVERSE,
456     VERTICAL_REVERSE,
457 };
458 
459 enum class FlexWrap {
460     NO_WRAP,
461     WRAP,
462     WRAP_REVERSE,
463 };
464 
465 enum class KeyDirection {
466     UP = 0,
467     DOWN,
468     LEFT,
469     RIGHT,
470 };
471 
472 enum class PixelRoundPolicy {
473     ALL_FORCE_ROUND = 0,
474     FORCE_CEIL_START = 1,
475     FORCE_FLOOR_START = 1 << 1,
476     NO_FORCE_ROUND_START = 1 << 2,
477     FORCE_CEIL_TOP = 1 << 3,
478     FORCE_FLOOR_TOP = 1 << 4,
479     NO_FORCE_ROUND_TOP = 1 << 5,
480     FORCE_CEIL_END = 1 << 6,
481     FORCE_FLOOR_END = 1 << 7,
482     NO_FORCE_ROUND_END = 1 << 8,
483     FORCE_CEIL_BOTTOM = 1 << 9,
484     FORCE_FLOOR_BOTTOM = 1 << 10,
485     NO_FORCE_ROUND_BOTTOM = 1 << 11,
486 };
487 
488 enum class PixelRoundCalcPolicy {
489     NO_FORCE_ROUND = 0,
490     FORCE_CEIL = 1,
491     FORCE_FLOOR = 2,
492 };
493 
494 enum class LayoutCalPolicy {
495     NO_MATCH = 0,
496     MATCH_PARENT = 1,
497 };
498 
499 const ImageRepeat IMAGE_REPEATS[] = {
500     ImageRepeat::REPEAT,
501     ImageRepeat::REPEAT_X,
502     ImageRepeat::REPEAT_Y,
503     ImageRepeat::NO_REPEAT,
504 };
505 
506 enum class WindowModal : int32_t {
507     NORMAL = 0,
508     SEMI_MODAL = 1,
509     SEMI_MODAL_FULL_SCREEN = 2,
510     DIALOG_MODAL = 3,
511     CONTAINER_MODAL = 4,
512     FIRST_VALUE = NORMAL,
513     LAST_VALUE = CONTAINER_MODAL,
514 };
515 
516 enum class WindowMode : uint32_t {
517     WINDOW_MODE_UNDEFINED = 0,
518     WINDOW_MODE_FULLSCREEN = 1,
519     WINDOW_MODE_SPLIT_PRIMARY = 100,
520     WINDOW_MODE_SPLIT_SECONDARY,
521     WINDOW_MODE_FLOATING,
522     WINDOW_MODE_PIP
523 };
524 
525 enum class WindowType : uint32_t {
526     WINDOW_TYPE_UNDEFINED = 0,
527     WINDOW_TYPE_APP_BASE = 1,
528     WINDOW_TYPE_APP_END = 1003,
529     WINDOW_TYPE_FLOAT = 2106,
530 };
531 
532 enum class PanelType {
533     MINI_BAR,
534     FOLDABLE_BAR,
535     TEMP_DISPLAY,
536     CUSTOM,
537 };
538 
539 enum class PanelMode {
540     MINI,
541     HALF,
542     FULL,
543     AUTO,
544     CUSTOM,
545 };
546 
547 enum class ColorScheme : int32_t {
548     SCHEME_LIGHT = 0,
549     SCHEME_TRANSPARENT = 1,
550     SCHEME_DARK = 2,
551     FIRST_VALUE = SCHEME_LIGHT,
552     LAST_VALUE = SCHEME_DARK,
553 };
554 
555 enum class RenderStatus : int32_t {
556     UNKNOWN = -1,
557     DEFAULT = 0,
558     ACTIVITY = 1,
559     FOCUS = 2,
560     BLUR = 3,
561     DISABLE = 4,
562     WAITING = 5,
563 };
564 
565 enum class BadgePosition {
566     RIGHT_TOP,
567     RIGHT,
568     LEFT,
569 };
570 
571 enum class QrcodeType {
572     RECT,
573     CIRCLE,
574 };
575 
576 enum class AnimationCurve {
577     FRICTION,
578     STANDARD,
579 };
580 
581 enum class WindowBlurStyle {
582     STYLE_BACKGROUND_SMALL_LIGHT = 100,
583     STYLE_BACKGROUND_MEDIUM_LIGHT = 101,
584     STYLE_BACKGROUND_LARGE_LIGHT = 102,
585     STYLE_BACKGROUND_XLARGE_LIGHT = 103,
586     STYLE_BACKGROUND_SMALL_DARK = 104,
587     STYLE_BACKGROUND_MEDIUM_DARK = 105,
588     STYLE_BACKGROUND_LARGE_DARK = 106,
589     STYLE_BACKGROUND_XLARGE_DARK = 107,
590 };
591 
592 enum class DisplayType { NO_SETTING = 0, FLEX, GRID, NONE, BLOCK, INLINE, INLINE_BLOCK, INLINE_FLEX };
593 
594 enum class VisibilityType {
595     NO_SETTING = 0,
596     VISIBLE,
597     HIDDEN,
598 };
599 
600 enum class RefreshType {
601     AUTO,
602     PULL_DOWN,
603 };
604 
605 enum class TabBarMode {
606     FIXED,
607     SCROLLABLE,
608     FIXED_START,
609 };
610 
611 enum class TabAnimateMode {
612     CONTENT_FIRST = 0,
613     ACTION_FIRST,
614     NO_ANIMATION,
615     CONTENT_FIRST_WITH_JUMP,
616     ACTION_FIRST_WITH_JUMP,
617     MAX_VALUE,
618 };
619 
620 enum class ShowInNavigationBar {
621     SHOW = 0,
622     POPUP,
623 };
624 
625 enum class HorizontalAlign {
626     START = 1,
627     CENTER,
628     END,
629 };
630 
631 enum class VerticalAlign {
632     TOP = 1,
633     CENTER,
634     BOTTOM,
635     BASELINE,
636     NONE,
637 };
638 
639 enum class SwiperDynamicSyncSceneType {
640     GESTURE = 0,
641     ANIMATE,
642 };
643 
644 enum class MarqueeDynamicSyncSceneType {
645     ANIMATE = 1,
646 };
647 
648 namespace StringUtils {
ToString(const VerticalAlign & verticalAlign)649 inline std::string ToString(const VerticalAlign& verticalAlign)
650 {
651     static const LinearEnumMapNode<VerticalAlign, std::string> table[] = {
652         { VerticalAlign::TOP, "TOP" },
653         { VerticalAlign::CENTER, "CENTER" },
654         { VerticalAlign::BOTTOM, "BOTTOM" },
655         { VerticalAlign::BASELINE, "BASELINE" },
656         { VerticalAlign::NONE, "NONE" },
657     };
658     auto iter = BinarySearchFindIndex(table, ArraySize(table), verticalAlign);
659     return iter != -1 ? table[iter].value : "";
660 }
661 } // namespace StringUtils
662 
663 enum class BarPosition {
664     START,
665     END,
666 };
667 
668 enum class CalendarType {
669     NORMAL = 0,
670     SIMPLE,
671 };
672 
673 enum class SideBarContainerType { EMBED, OVERLAY, AUTO };
674 
675 enum class SideBarPosition { START, END };
676 
677 enum class SideBarStatus {
678     SHOW,
679     HIDDEN,
680     CHANGING,
681     AUTO,
682 };
683 
684 enum class HitTestMode {
685     /**
686      *  Both self and children respond to the hit test for touch events,
687      *  but block hit test of the other nodes which is masked by this node.
688      */
689     HTMDEFAULT = 0,
690 
691     /**
692      * Self respond to the hit test for touch events,
693      * but block hit test of children and other nodes which is masked by this node.
694      */
695     HTMBLOCK,
696 
697     /**
698      * Self and child respond to the hit test for touch events,
699      * and allow hit test of other nodes which is masked by this node.
700      */
701     HTMTRANSPARENT,
702 
703     /**
704      * Self not respond to the hit test for touch events,
705      * but children respond to the hit test for touch events.
706      */
707     HTMNONE
708 };
709 
710 enum class CopyOptions {
711     None = 0,
712     InApp,
713     Local,
714     Distributed,
715 };
716 
717 enum class VisibleType {
718     VISIBLE,
719     INVISIBLE,
720     GONE,
721 };
722 
723 enum class ShapeMode {
724     /*
725      * unspecified, follow theme.
726      */
727     DEFAULT = 0,
728     /*
729      * rect scrollbar.
730      */
731     RECT,
732     /*
733      * round scrollbar.
734      */
735     ROUND,
736 };
737 
738 enum class DisplayMode {
739     /*
740      * do not display scrollbar.
741      */
742     OFF = 0,
743     /*
744      * display scrollbar on demand.
745      */
746     AUTO,
747     /*
748      * always display scrollbar.
749      */
750     ON,
751 };
752 
753 enum class PositionMode {
754     /*
755      * display scrollbar on right.
756      */
757     RIGHT = 0,
758     /*
759      * display scrollbar on left.
760      */
761     LEFT,
762     /*
763      * display scrollbar on bottom.
764      */
765     BOTTOM,
766 };
767 
768 enum class XComponentType { UNKNOWN = -1, SURFACE = 0, COMPONENT, TEXTURE, NODE };
769 
770 enum class RenderMode { ASYNC_RENDER = 0, SYNC_RENDER };
771 
772 inline constexpr uint32_t STATE_NORMAL = 0;
773 inline constexpr uint32_t STATE_PRESSED = 1;
774 inline constexpr uint32_t STATE_FOCUS = 1 << 1;
775 inline constexpr uint32_t STATE_CHECKED = 1 << 2;
776 inline constexpr uint32_t STATE_DISABLED = 1 << 3;
777 inline constexpr uint32_t STATE_WAITING = 1 << 4;
778 inline constexpr uint32_t STATE_HOVERED = 1 << 5;
779 inline constexpr uint32_t STATE_ACTIVE = 1 << 6;
780 
781 enum class TabBarStyle {
782     NOSTYLE = 0,
783     SUBTABBATSTYLE,
784     BOTTOMTABBATSTYLE,
785 };
786 
787 enum class GestureJudgeResult {
788     CONTINUE = 0,
789     REJECT = 1,
790 };
791 
792 enum class GestureTypeName {
793     UNKNOWN = -1,
794     TAP_GESTURE = 0,
795     LONG_PRESS_GESTURE = 1,
796     PAN_GESTURE = 2,
797     PINCH_GESTURE = 3,
798     SWIPE_GESTURE = 4,
799     ROTATION_GESTURE = 5,
800     DRAG = 6,
801     CLICK = 7,
802     BOXSELECT = 8,
803     WEBSCROLL = 9,
804     TEXTFIELD_BOXSELECT = 10,
805 };
806 
807 enum class ModifierKey {
808     CTRL = 0,
809     SHIFT = 1,
810     ALT = 2,
811 };
812 
813 enum class FunctionKey {
814     ESC = 0,
815     F1 = 1,
816     F2 = 2,
817     F3 = 3,
818     F4 = 4,
819     F5 = 5,
820     F6 = 6,
821     F7 = 7,
822     F8 = 8,
823     F9 = 9,
824     F10 = 10,
825     F11 = 11,
826     F12 = 12,
827     TAB = 13,
828     DPAD_UP = 14,
829     DPAD_DOWN = 15,
830     DPAD_LEFT = 16,
831     DPAD_RIGHT = 17,
832 };
833 
834 enum class ObscuredReasons {
835     PLACEHOLDER = 0,
836 };
837 
838 enum class MaximizeMode : uint32_t {
839     MODE_AVOID_SYSTEM_BAR,
840     MODE_FULL_FILL,
841     MODE_RECOVER,
842 };
843 
844 enum class RenderFit : int32_t {
845     CENTER = 0,
846     TOP,
847     BOTTOM,
848     LEFT,
849     RIGHT,
850     TOP_LEFT,
851     TOP_RIGHT,
852     BOTTOM_LEFT,
853     BOTTOM_RIGHT,
854     RESIZE_FILL,
855     RESIZE_CONTAIN,
856     RESIZE_CONTAIN_TOP_LEFT,
857     RESIZE_CONTAIN_BOTTOM_RIGHT,
858     RESIZE_COVER,
859     RESIZE_COVER_TOP_LEFT,
860     RESIZE_COVER_BOTTOM_RIGHT,
861 };
862 
863 enum class KeyBoardAvoidMode : int32_t {
864     OFFSET = 0,
865     RESIZE = 1,
866     OFFSET_WITH_CARET = 2,
867     RESIZE_WITH_CARET = 3,
868     NONE = 4,
869 };
870 
871 enum class SwipeActionState : uint32_t {
872     COLLAPSED = 0,
873     EXPANDED,
874     ACTIONING,
875 };
876 /**
877  * souce is Rosen::Orientation
878  */
879 enum class Orientation : uint32_t {
880     BEGIN = 0,
881     UNSPECIFIED = BEGIN,
882     VERTICAL = 1,
883     HORIZONTAL = 2,
884     REVERSE_VERTICAL = 3,
885     REVERSE_HORIZONTAL = 4,
886     SENSOR = 5,
887     SENSOR_VERTICAL = 6,
888     SENSOR_HORIZONTAL = 7,
889     AUTO_ROTATION_RESTRICTED = 8,
890     AUTO_ROTATION_PORTRAIT_RESTRICTED = 9,
891     AUTO_ROTATION_LANDSCAPE_RESTRICTED = 10,
892     LOCKED = 11,
893     END = LOCKED,
894 };
895 
896 enum class NodeRenderType : uint32_t {
897     RENDER_TYPE_DISPLAY = 0,
898     RENDER_TYPE_TEXTURE,
899 };
900 
901 enum class MarqueeUpdateStrategy : uint32_t {
902     DEFAULT = 0,
903     PRESERVE_POSITION,
904 };
905 
906 enum class EdgeType {
907     MARGIN,
908     PADDING,
909     SAFE_AREA_PADDING,
910 };
911 
912 enum class SafeAreaSyncType : uint32_t {
913     SYNC_TYPE_NONE = 0,
914     SYNC_TYPE_KEYBOARD,
915     SYNC_TYPE_AVOID_AREA,
916     SYNC_TYPE_WINDOW_IGNORE
917 };
918 
919 enum class SwiperAnimationMode {
920     NO_ANIMATION = 0,
921     DEFAULT_ANIMATION,
922     FAST_ANIMATION,
923     MAX_VALUE,
924 };
925 } // namespace OHOS::Ace
926 
927 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_BASE_LAYOUT_CONSTANTS_H
928