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