slot 0.0.1
A real time UI render framework
载入中...
搜索中...
未找到
FlexDirection.h
浏览该文件的文档.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7
8#pragma once
9
10#include <yoga/Yoga.h>
11
15#include <yoga/enums/Edge.h>
18
19namespace facebook::yoga {
20
21inline bool isRow(const FlexDirection flexDirection) {
22 return flexDirection == FlexDirection::Row ||
23 flexDirection == FlexDirection::RowReverse;
24}
25
26inline bool isColumn(const FlexDirection flexDirection) {
27 return flexDirection == FlexDirection::Column ||
28 flexDirection == FlexDirection::ColumnReverse;
29}
30
32 const FlexDirection flexDirection,
33 const Direction direction) {
34 if (direction == Direction::RTL) {
35 if (flexDirection == FlexDirection::Row) {
37 } else if (flexDirection == FlexDirection::RowReverse) {
38 return FlexDirection::Row;
39 }
40 }
41
42 return flexDirection;
43}
44
46 const FlexDirection flexDirection,
47 const Direction direction) {
48 return isColumn(flexDirection)
51}
52
54 switch (flexDirection) {
56 return PhysicalEdge::Top;
60 return PhysicalEdge::Left;
63 default:
64 fatalWithMessage("Invalid FlexDirection");
65 }
66}
67
68inline PhysicalEdge flexEndEdge(FlexDirection flexDirection) {
69 switch (flexDirection) {
73 return PhysicalEdge::Top;
77 return PhysicalEdge::Left;
78 default:
79 fatalWithMessage("Invalid FlexDirection");
80 }
81}
82
84 FlexDirection flexDirection,
85 Direction direction) {
86 if (isRow(flexDirection)) {
87 return direction == Direction::RTL ? PhysicalEdge::Right
89 }
90
91 return PhysicalEdge::Top;
92}
93
95 FlexDirection flexDirection,
96 Direction direction) {
97 if (isRow(flexDirection)) {
98 return direction == Direction::RTL ? PhysicalEdge::Left
100 }
101
103}
104
105inline Dimension dimension(FlexDirection flexDirection) {
106 switch (flexDirection) {
108 return Dimension::Height;
110 return Dimension::Height;
112 return Dimension::Width;
114 return Dimension::Width;
115 default:
116 fatalWithMessage("Invalid FlexDirection");
117 }
118}
119
120} // namespace facebook::yoga
Definition Benchmark.cpp:19
PhysicalEdge inlineEndEdge(FlexDirection flexDirection, Direction direction)
Definition FlexDirection.h:94
Direction
Definition Direction.h:18
PhysicalEdge flexEndEdge(FlexDirection flexDirection)
Definition FlexDirection.h:68
void fatalWithMessage(const char *message)
Definition AssertFatal.cpp:18
FlexDirection resolveDirection(const FlexDirection flexDirection, const Direction direction)
Definition FlexDirection.h:31
PhysicalEdge inlineStartEdge(FlexDirection flexDirection, Direction direction)
Definition FlexDirection.h:83
PhysicalEdge flexStartEdge(FlexDirection flexDirection)
Definition FlexDirection.h:53
FlexDirection resolveCrossDirection(const FlexDirection flexDirection, const Direction direction)
Definition FlexDirection.h:45
bool isRow(const FlexDirection flexDirection)
Definition FlexDirection.h:21
Dimension dimension(FlexDirection flexDirection)
Definition FlexDirection.h:105
FlexDirection
Definition FlexDirection.h:18
bool isColumn(const FlexDirection flexDirection)
Definition FlexDirection.h:26
Dimension
Definition Dimension.h:18
PhysicalEdge
Definition PhysicalEdge.h:14