45 static constexpr float DefaultFlexGrow = 0.0f;
46 static constexpr float DefaultFlexShrink = 0.0f;
47 static constexpr float WebDefaultFlexShrink = 1.0f;
57 return flexDirection_;
60 flexDirection_ = value;
64 return justifyContent_;
67 justifyContent_ = value;
74 justifyItems_ = value;
88 alignContent_ = value;
106 return positionType_;
109 positionType_ = value;
134 return pool_.getNumber(flex_);
137 pool_.store(flex_, value);
141 return pool_.getNumber(flexGrow_);
144 pool_.store(flexGrow_, value);
148 return pool_.getNumber(flexShrink_);
151 pool_.store(flexShrink_, value);
155 return pool_.getSize(flexBasis_);
158 pool_.store(flexBasis_, value);
162 return pool_.getLength(margin_[yoga::to_underlying(edge)]);
165 pool_.store(margin_[yoga::to_underlying(edge)], value);
169 return pool_.getLength(position_[yoga::to_underlying(edge)]);
172 pool_.store(position_[yoga::to_underlying(edge)], value);
176 return pool_.getLength(padding_[yoga::to_underlying(edge)]);
179 pool_.store(padding_[yoga::to_underlying(edge)], value);
183 return pool_.getLength(border_[yoga::to_underlying(edge)]);
186 pool_.store(border_[yoga::to_underlying(edge)], value);
190 return pool_.getLength(gap_[yoga::to_underlying(gutter)]);
193 pool_.store(gap_[yoga::to_underlying(gutter)], value);
197 return pool_.getSize(dimensions_[yoga::to_underlying(axis)]);
200 pool_.store(dimensions_[yoga::to_underlying(axis)], value);
204 return pool_.getSize(minDimensions_[yoga::to_underlying(axis)]);
207 pool_.store(minDimensions_[yoga::to_underlying(axis)], value);
212 return gridTemplateColumns_;
215 gridTemplateColumns_ = std::move(value);
218 gridTemplateColumns_.resize(count);
221 gridTemplateColumns_[index] = value;
225 return gridTemplateRows_;
228 gridTemplateRows_ = std::move(value);
231 gridTemplateRows_.resize(count);
234 gridTemplateRows_[index] = value;
238 return gridAutoColumns_;
241 gridAutoColumns_ = std::move(value);
244 gridAutoColumns_.resize(count);
247 gridAutoColumns_[index] = value;
251 return gridAutoRows_;
254 gridAutoRows_ = std::move(value);
257 gridAutoRows_.resize(count);
260 gridAutoRows_[index] = value;
265 return gridColumnStart_;
268 gridColumnStart_ = value;
272 return gridColumnEnd_;
275 gridColumnEnd_ = value;
279 return gridRowStart_;
282 gridRowStart_ = value;
295 float referenceLength,
296 float ownerWidth)
const {
297 const auto handle = minDimensions_[yoga::to_underlying(axis)];
298 if (handle.isUndefined()) {
302 if (boxSizing() == BoxSizing::BorderBox || !value.isDefined()) {
307 computePaddingAndBorderForDimension(direction, axis, ownerWidth)};
310 (dimensionPaddingAndBorder.
isDefined() ? dimensionPaddingAndBorder
315 return pool_.getSize(maxDimensions_[yoga::to_underlying(axis)]);
318 pool_.store(maxDimensions_[yoga::to_underlying(axis)], value);
324 float referenceLength,
325 float ownerWidth)
const {
326 const auto handle = maxDimensions_[yoga::to_underlying(axis)];
327 if (handle.isUndefined()) {
331 if (boxSizing() == BoxSizing::BorderBox || !value.isDefined()) {
336 computePaddingAndBorderForDimension(direction, axis, ownerWidth)};
339 (dimensionPaddingAndBorder.
isDefined() ? dimensionPaddingAndBorder
344 return pool_.getNumber(aspectRatio_);
351 value == 0.0f || std::isinf(value.unwrap()) ?
FloatOptional{} : value);
362 return position_[yoga::to_underlying(Edge::Left)].isDefined() ||
363 position_[yoga::to_underlying(Edge::Right)].isDefined() ||
364 position_[yoga::to_underlying(Edge::All)].isDefined() ||
365 position_[yoga::to_underlying(Edge::Horizontal)].isDefined() ||
366 position_[yoga::to_underlying(Edge::Start)].isDefined() ||
367 position_[yoga::to_underlying(Edge::End)].isDefined();
371 return position_[yoga::to_underlying(Edge::Top)].isDefined() ||
372 position_[yoga::to_underlying(Edge::Bottom)].isDefined() ||
373 position_[yoga::to_underlying(Edge::All)].isDefined() ||
374 position_[yoga::to_underlying(Edge::Vertical)].isDefined();
379 return computePosition(
flexStartEdge(axis), direction).isDefined();
383 return computePosition(
flexStartEdge(axis), direction).isAuto();
399 return computePosition(
flexEndEdge(axis), direction).isDefined();
403 return computePosition(
flexEndEdge(axis), direction).isAuto();
408 return computePosition(
inlineEndEdge(axis, direction), direction)
413 return computePosition(
inlineEndEdge(axis, direction), direction).isAuto();
419 float axisSize)
const {
420 return resolve(computePosition(
flexStartEdge(axis), direction), axisSize)
421 .unwrapOrDefault(0.0f);
427 float axisSize)
const {
431 .unwrapOrDefault(0.0f);
437 float axisSize)
const {
438 return resolve(computePosition(
flexEndEdge(axis), direction), axisSize)
439 .unwrapOrDefault(0.0f);
445 float axisSize)
const {
449 .unwrapOrDefault(0.0f);
455 float widthSize)
const {
456 return resolve(computeMargin(
flexStartEdge(axis), direction), widthSize)
457 .unwrapOrDefault(0.0f);
463 float widthSize)
const {
467 .unwrapOrDefault(0.0f);
473 float widthSize)
const {
474 return resolve(computeMargin(
flexEndEdge(axis), direction), widthSize)
475 .unwrapOrDefault(0.0f);
481 float widthSize)
const {
485 .unwrapOrDefault(0.0f);
490 resolve(computeBorder(
flexStartEdge(axis), direction), 0.0f).unwrap(),
505 resolve(computeBorder(
flexEndEdge(axis), direction), 0.0f).unwrap(),
511 resolve(computeBorder(
inlineEndEdge(axis, direction), direction), 0.0f)
519 float widthSize)
const {
521 resolve(computePadding(
flexStartEdge(axis), direction), widthSize)
529 float widthSize)
const {
541 float widthSize)
const {
543 resolve(computePadding(
flexEndEdge(axis), direction), widthSize)
551 float widthSize)
const {
563 float widthSize)
const {
564 return computeInlineStartPadding(axis, direction, widthSize) +
565 computeInlineStartBorder(axis, direction);
571 float widthSize)
const {
572 return computeFlexStartPadding(axis, direction, widthSize) +
573 computeFlexStartBorder(axis, direction);
579 float widthSize)
const {
580 return computeInlineEndPadding(axis, direction, widthSize) +
581 computeInlineEndBorder(axis, direction);
587 float widthSize)
const {
588 return computeFlexEndPadding(axis, direction, widthSize) +
589 computeFlexEndBorder(axis, direction);
595 float widthSize)
const {
598 : FlexDirection::Column;
600 return computeFlexStartPaddingAndBorder(
601 flexDirectionForDimension, direction, widthSize) +
602 computeFlexEndPaddingAndBorder(
603 flexDirectionForDimension, direction, widthSize);
607 return computeInlineStartBorder(axis, Direction::LTR) +
608 computeInlineEndBorder(axis, Direction::LTR);
614 return computeInlineStartMargin(axis, Direction::LTR, widthSize) +
615 computeInlineEndMargin(axis, Direction::LTR, widthSize);
619 auto gap =
isRow(axis) ? computeColumnGap() : computeRowGap();
620 return maxOrDefined(resolve(gap, ownerSize).unwrap(), 0.0f);
625 dimension == Dimension::Width ? computeColumnGap() : computeRowGap();
626 return maxOrDefined(resolve(gap, ownerSize).unwrap(), 0.0f);
630 return computeMargin(
flexStartEdge(axis), direction).isAuto();
634 return computeMargin(
flexEndEdge(axis), direction).isAuto();
638 return computeMargin(
inlineStartEdge(axis, direction), direction).isAuto();
642 return computeMargin(
inlineEndEdge(axis, direction), direction).isAuto();
655 numbersEqual(flex_, pool_, other.
flex_, other.
pool_) &&
659 lengthsEqual(margin_, pool_, other.
margin_, other.
pool_) &&
661 lengthsEqual(padding_, pool_, other.
padding_, other.
pool_) &&
662 lengthsEqual(border_, pool_, other.
border_, other.
pool_) &&
663 lengthsEqual(gap_, pool_, other.
gap_, other.
pool_) &&
681 using Dimensions = std::array<StyleValueHandle, ordinalCount<Dimension>()>;
682 using Edges = std::array<StyleValueHandle, ordinalCount<Edge>()>;
683 using Gutters = std::array<StyleValueHandle, ordinalCount<Gutter>()>;
705 const std::array<StyleValueHandle, N>& lhs,
707 const std::array<StyleValueHandle, N>& rhs,
714 [&](
const auto& lhs,
const auto& rhs) {
715 return lengthsEqual(lhs, lhsPool, rhs, rhsPool);
730 const std::array<StyleValueHandle, N>& lhs,
732 const std::array<StyleValueHandle, N>& rhs,
739 [&](
const auto& lhs,
const auto& rhs) {
740 return sizeLengthsEqual(lhs, lhsPool, rhs, rhsPool);
745 if (gap_[yoga::to_underlying(Gutter::Column)].
isDefined()) {
746 return gap_[yoga::to_underlying(Gutter::Column)];
748 return gap_[yoga::to_underlying(Gutter::All)];
753 if (gap_[yoga::to_underlying(Gutter::Row)].
isDefined()) {
754 return gap_[yoga::to_underlying(Gutter::Row)];
756 return gap_[yoga::to_underlying(Gutter::All)];
763 if (layoutDirection == Direction::LTR &&
764 edges[yoga::to_underlying(Edge::Start)].
isDefined()) {
765 return edges[yoga::to_underlying(Edge::Start)];
767 layoutDirection == Direction::RTL &&
768 edges[yoga::to_underlying(Edge::End)].
isDefined()) {
769 return edges[yoga::to_underlying(Edge::End)];
770 }
else if (edges[yoga::to_underlying(Edge::Left)].
isDefined()) {
771 return edges[yoga::to_underlying(Edge::Left)];
772 }
else if (edges[yoga::to_underlying(Edge::Horizontal)].
isDefined()) {
773 return edges[yoga::to_underlying(Edge::Horizontal)];
775 return edges[yoga::to_underlying(Edge::All)];
780 if (edges[yoga::to_underlying(Edge::Top)].
isDefined()) {
781 return edges[yoga::to_underlying(Edge::Top)];
782 }
else if (edges[yoga::to_underlying(Edge::Vertical)].
isDefined()) {
783 return edges[yoga::to_underlying(Edge::Vertical)];
785 return edges[yoga::to_underlying(Edge::All)];
792 if (layoutDirection == Direction::LTR &&
793 edges[yoga::to_underlying(Edge::End)].
isDefined()) {
794 return edges[yoga::to_underlying(Edge::End)];
796 layoutDirection == Direction::RTL &&
797 edges[yoga::to_underlying(Edge::Start)].
isDefined()) {
798 return edges[yoga::to_underlying(Edge::Start)];
799 }
else if (edges[yoga::to_underlying(Edge::Right)].
isDefined()) {
800 return edges[yoga::to_underlying(Edge::Right)];
801 }
else if (edges[yoga::to_underlying(Edge::Horizontal)].
isDefined()) {
802 return edges[yoga::to_underlying(Edge::Horizontal)];
804 return edges[yoga::to_underlying(Edge::All)];
809 if (edges[yoga::to_underlying(Edge::Bottom)].
isDefined()) {
810 return edges[yoga::to_underlying(Edge::Bottom)];
811 }
else if (edges[yoga::to_underlying(Edge::Vertical)].
isDefined()) {
812 return edges[yoga::to_underlying(Edge::Vertical)];
814 return edges[yoga::to_underlying(Edge::All)];
821 case PhysicalEdge::Left:
822 return computeLeftEdge(position_, direction);
823 case PhysicalEdge::Top:
824 return computeTopEdge(position_);
825 case PhysicalEdge::Right:
826 return computeRightEdge(position_, direction);
827 case PhysicalEdge::Bottom:
828 return computeBottomEdge(position_);
836 case PhysicalEdge::Left:
837 return computeLeftEdge(margin_, direction);
838 case PhysicalEdge::Top:
839 return computeTopEdge(margin_);
840 case PhysicalEdge::Right:
841 return computeRightEdge(margin_, direction);
842 case PhysicalEdge::Bottom:
843 return computeBottomEdge(margin_);
852 case PhysicalEdge::Left:
853 return computeLeftEdge(padding_, direction);
854 case PhysicalEdge::Top:
855 return computeTopEdge(padding_);
856 case PhysicalEdge::Right:
857 return computeRightEdge(padding_, direction);
858 case PhysicalEdge::Bottom:
859 return computeBottomEdge(padding_);
867 case PhysicalEdge::Left:
868 return computeLeftEdge(border_, direction);
869 case PhysicalEdge::Top:
870 return computeTopEdge(border_);
871 case PhysicalEdge::Right:
872 return computeRightEdge(border_, direction);
873 case PhysicalEdge::Bottom:
874 return computeBottomEdge(border_);
895 pool_.getStoredValue(handle) * referenceLength * 0.01f};
902 : bitCount<FlexDirection>() = FlexDirection::Column;
910 : bitCount<PositionType>() = PositionType::Relative;
926 StyleValueHandle::ofAuto(),
927 StyleValueHandle::ofAuto()};
#define YG_EXPORT
Definition YGMacros.h:35
StyleValueHandle computePosition(PhysicalEdge edge, Direction direction) const
Definition Style.h:818
void setGridRowStart(GridLine value)
Definition Style.h:281
FloatOptional aspectRatio() const
Definition Style.h:343
Style::Length margin(Edge edge) const
Definition Style.h:161
static bool numbersEqual(const StyleValueHandle &lhsHandle, const StyleValuePool &lhsPool, const StyleValueHandle &rhsHandle, const StyleValuePool &rhsPool)
Definition Style.h:685
void setMargin(Edge edge, Style::Length value)
Definition Style.h:164
PositionType positionType() const
Definition Style.h:105
Dimensions minDimensions_
Definition Style.h:928
Wrap flexWrap() const
Definition Style.h:112
StyleValueHandle computeLeftEdge(const Edges &edges, Direction layoutDirection) const
Definition Style.h:760
void setAlignItems(Align value)
Definition Style.h:94
static bool lengthsEqual(const std::array< StyleValueHandle, N > &lhs, const StyleValuePool &lhsPool, const std::array< StyleValueHandle, N > &rhs, const StyleValuePool &rhsPool)
Definition Style.h:704
BoxSizing boxSizing_
Definition Style.h:914
Style::Length padding(Edge edge) const
Definition Style.h:175
void setPadding(Edge edge, Style::Length value)
Definition Style.h:178
void setGridRowEnd(GridLine value)
Definition Style.h:288
bool isInlineStartPositionDefined(FlexDirection axis, Direction direction) const
Definition Style.h:386
const GridLine & gridRowStart() const
Definition Style.h:278
Style::SizeLength maxDimension(Dimension axis) const
Definition Style.h:314
FlexDirection flexDirection() const
Definition Style.h:56
bool isInlineEndPositionDefined(FlexDirection axis, Direction direction) const
Definition Style.h:406
StyleValuePool pool_
Definition Style.h:942
Edges border_
Definition Style.h:923
void setFlexWrap(Wrap value)
Definition Style.h:115
Direction direction_
Definition Style.h:900
StyleValueHandle flex_
Definition Style.h:916
float computeInlineStartPadding(FlexDirection axis, Direction direction, float widthSize) const
Definition Style.h:526
FloatOptional resolve(StyleValueHandle handle, float referenceLength) const
Definition Style.h:889
void setFlexGrow(FloatOptional value)
Definition Style.h:143
StyleValueHandle flexGrow_
Definition Style.h:917
Style::Length gap(Gutter gutter) const
Definition Style.h:189
void setPosition(Edge edge, Style::Length value)
Definition Style.h:171
void resizeGridTemplateColumns(size_t count)
Definition Style.h:217
float computeInlineEndPaddingAndBorder(FlexDirection axis, Direction direction, float widthSize) const
Definition Style.h:576
StyleValueHandle aspectRatio_
Definition Style.h:930
Style::SizeLength minDimension(Dimension axis) const
Definition Style.h:203
Direction direction() const
Definition Style.h:49
static bool sizeLengthsEqual(const StyleValueHandle &lhsHandle, const StyleValuePool &lhsPool, const StyleValueHandle &rhsHandle, const StyleValuePool &rhsPool)
Definition Style.h:719
Align alignSelf() const
Definition Style.h:98
float computeFlexStartMargin(FlexDirection axis, Direction direction, float widthSize) const
Definition Style.h:452
float computeInlineEndPosition(FlexDirection axis, Direction direction, float axisSize) const
Definition Style.h:442
StyleValueHandle computeMargin(PhysicalEdge edge, Direction direction) const
Definition Style.h:834
bool flexEndMarginIsAuto(FlexDirection axis, Direction direction) const
Definition Style.h:633
std::array< StyleValueHandle, ordinalCount< Gutter >()> Gutters
Definition Style.h:683
GridLine gridRowStart_
Definition Style.h:939
Dimensions maxDimensions_
Definition Style.h:929
void setFlexShrink(FloatOptional value)
Definition Style.h:150
void resizeGridAutoRows(size_t count)
Definition Style.h:256
void setFlex(FloatOptional value)
Definition Style.h:136
bool verticalInsetsDefined() const
Definition Style.h:370
Dimensions dimensions_
Definition Style.h:925
GridLine gridColumnEnd_
Definition Style.h:938
float computeInlineEndBorder(FlexDirection axis, Direction direction) const
Definition Style.h:509
PositionType positionType_
Definition Style.h:910
StyleValueHandle computeRowGap() const
Definition Style.h:752
float computeFlexStartBorder(FlexDirection axis, Direction direction) const
Definition Style.h:488
FloatOptional flexGrow() const
Definition Style.h:140
void setBorder(Edge edge, Style::Length value)
Definition Style.h:185
float computeInlineStartPaddingAndBorder(FlexDirection axis, Direction direction, float widthSize) const
Definition Style.h:560
float computeInlineEndMargin(FlexDirection axis, Direction direction, float widthSize) const
Definition Style.h:478
bool isInlineStartPositionAuto(FlexDirection axis, Direction direction) const
Definition Style.h:392
float computeInlineEndPadding(FlexDirection axis, Direction direction, float widthSize) const
Definition Style.h:548
void setJustifyItems(Justify value)
Definition Style.h:73
StyleValueHandle computeColumnGap() const
Definition Style.h:744
const GridLine & gridRowEnd() const
Definition Style.h:285
bool inlineEndMarginIsAuto(FlexDirection axis, Direction direction) const
Definition Style.h:641
static bool lengthsEqual(const StyleValueHandle &lhsHandle, const StyleValuePool &lhsPool, const StyleValueHandle &rhsHandle, const StyleValuePool &rhsPool)
Definition Style.h:694
float computeFlexStartPadding(FlexDirection axis, Direction direction, float widthSize) const
Definition Style.h:516
void setDirection(Direction value)
Definition Style.h:52
float computeFlexEndBorder(FlexDirection axis, Direction direction) const
Definition Style.h:503
Align alignItems_
Definition Style.h:907
StyleValueHandle computePadding(PhysicalEdge edge, Direction direction) const
Definition Style.h:849
bool operator==(const Style &other) const
Definition Style.h:645
Overflow overflow_
Definition Style.h:912
Justify justifyItems() const
Definition Style.h:70
Style::SizeLength flexBasis() const
Definition Style.h:154
Style::Length border(Edge edge) const
Definition Style.h:182
const GridLine & gridColumnStart() const
Definition Style.h:264
void setGridAutoColumnAt(size_t index, GridTrackSize value)
Definition Style.h:246
void resizeGridTemplateRows(size_t count)
Definition Style.h:230
Justify justifyContent_
Definition Style.h:903
FlexDirection flexDirection_
Definition Style.h:902
void setGridTemplateRows(GridTrackList value)
Definition Style.h:227
void setDimension(Dimension axis, Style::SizeLength value)
Definition Style.h:199
Justify justifyItems_
Definition Style.h:904
float computeFlexStartPosition(FlexDirection axis, Direction direction, float axisSize) const
Definition Style.h:416
static bool sizeLengthsEqual(const std::array< StyleValueHandle, N > &lhs, const StyleValuePool &lhsPool, const std::array< StyleValueHandle, N > &rhs, const StyleValuePool &rhsPool)
Definition Style.h:729
GridTrackList gridAutoRows_
Definition Style.h:936
void setJustifySelf(Justify value)
Definition Style.h:80
bool isFlexStartPositionAuto(FlexDirection axis, Direction direction) const
Definition Style.h:382
GridLine gridRowEnd_
Definition Style.h:940
void setFlexBasis(Style::SizeLength value)
Definition Style.h:157
void setDisplay(Display value)
Definition Style.h:129
float computePaddingAndBorderForDimension(Direction direction, Dimension dimension, float widthSize) const
Definition Style.h:592
float computeFlexEndPosition(FlexDirection axis, Direction direction, float axisSize) const
Definition Style.h:434
Align alignContent() const
Definition Style.h:84
StyleValueHandle flexShrink_
Definition Style.h:918
Display display() const
Definition Style.h:126
GridLine gridColumnStart_
Definition Style.h:937
float computeGapForDimension(Dimension dimension, float ownerSize) const
Definition Style.h:623
float computeFlexEndMargin(FlexDirection axis, Direction direction, float widthSize) const
Definition Style.h:470
void setGridTemplateColumnAt(size_t index, GridTrackSize value)
Definition Style.h:220
float computeGapForAxis(FlexDirection axis, float ownerSize) const
Definition Style.h:618
FloatOptional resolvedMinDimension(Direction direction, Dimension axis, float referenceLength, float ownerWidth) const
Definition Style.h:292
StyleValueHandle computeRightEdge(const Edges &edges, Direction layoutDirection) const
Definition Style.h:789
float computeInlineStartPosition(FlexDirection axis, Direction direction, float axisSize) const
Definition Style.h:424
FloatOptional resolvedMaxDimension(Direction direction, Dimension axis, float referenceLength, float ownerWidth) const
Definition Style.h:321
float computeMarginForAxis(FlexDirection axis, float widthSize) const
Definition Style.h:611
void setGridColumnEnd(GridLine value)
Definition Style.h:274
bool isFlexEndPositionDefined(FlexDirection axis, Direction direction) const
Definition Style.h:398
GridTrackList gridTemplateColumns_
Definition Style.h:933
FloatOptional flex() const
Definition Style.h:133
void setBoxSizing(BoxSizing value)
Definition Style.h:357
BoxSizing boxSizing() const
Definition Style.h:354
float computeInlineStartMargin(FlexDirection axis, Direction direction, float widthSize) const
Definition Style.h:460
void resizeGridAutoColumns(size_t count)
Definition Style.h:243
bool isFlexEndPositionAuto(FlexDirection axis, Direction direction) const
Definition Style.h:402
void setGap(Gutter gutter, Style::Length value)
Definition Style.h:192
Justify justifySelf_
Definition Style.h:905
void setFlexDirection(FlexDirection value)
Definition Style.h:59
bool inlineStartMarginIsAuto(FlexDirection axis, Direction direction) const
Definition Style.h:637
const GridLine & gridColumnEnd() const
Definition Style.h:271
Style::SizeLength dimension(Dimension axis) const
Definition Style.h:196
void setGridTemplateColumns(GridTrackList value)
Definition Style.h:214
bool isFlexStartPositionDefined(FlexDirection axis, Direction direction) const
Definition Style.h:377
Overflow overflow() const
Definition Style.h:119
float computeBorderForAxis(FlexDirection axis) const
Definition Style.h:606
float computeFlexEndPadding(FlexDirection axis, Direction direction, float widthSize) const
Definition Style.h:538
void setGridAutoRows(GridTrackList value)
Definition Style.h:253
Align alignItems() const
Definition Style.h:91
void setAlignSelf(Align value)
Definition Style.h:101
const GridTrackList & gridTemplateRows() const
Definition Style.h:224
Wrap flexWrap_
Definition Style.h:911
Edges padding_
Definition Style.h:922
void setMinDimension(Dimension axis, Style::SizeLength value)
Definition Style.h:206
std::array< StyleValueHandle, ordinalCount< Dimension >()> Dimensions
Definition Style.h:681
void setGridAutoRowAt(size_t index, GridTrackSize value)
Definition Style.h:259
void setJustifyContent(Justify value)
Definition Style.h:66
Align alignContent_
Definition Style.h:906
Justify justifySelf() const
Definition Style.h:77
StyleValueHandle computeBottomEdge(const Edges &edges) const
Definition Style.h:808
StyleValueHandle computeTopEdge(const Edges &edges) const
Definition Style.h:779
Display display_
Definition Style.h:913
bool flexStartMarginIsAuto(FlexDirection axis, Direction direction) const
Definition Style.h:629
void setMaxDimension(Dimension axis, Style::SizeLength value)
Definition Style.h:317
Edges position_
Definition Style.h:921
void setGridTemplateRowAt(size_t index, GridTrackSize value)
Definition Style.h:233
const GridTrackList & gridAutoColumns() const
Definition Style.h:237
float computeInlineStartBorder(FlexDirection axis, Direction direction) const
Definition Style.h:494
FloatOptional flexShrink() const
Definition Style.h:147
void setOverflow(Overflow value)
Definition Style.h:122
float computeFlexStartPaddingAndBorder(FlexDirection axis, Direction direction, float widthSize) const
Definition Style.h:568
Edges margin_
Definition Style.h:920
StyleValueHandle flexBasis_
Definition Style.h:919
std::array< StyleValueHandle, ordinalCount< Edge >()> Edges
Definition Style.h:682
bool isInlineEndPositionAuto(FlexDirection axis, Direction direction) const
Definition Style.h:412
Justify justifyContent() const
Definition Style.h:63
bool horizontalInsetsDefined() const
Definition Style.h:361
float computeFlexEndPaddingAndBorder(FlexDirection axis, Direction direction, float widthSize) const
Definition Style.h:584
Gutters gap_
Definition Style.h:924
GridTrackList gridAutoColumns_
Definition Style.h:935
void setPositionType(PositionType value)
Definition Style.h:108
void setGridAutoColumns(GridTrackList value)
Definition Style.h:240
const GridTrackList & gridAutoRows() const
Definition Style.h:250
Align alignSelf_
Definition Style.h:908
Style::Length position(Edge edge) const
Definition Style.h:168
GridTrackList gridTemplateRows_
Definition Style.h:934
StyleValueHandle computeBorder(PhysicalEdge edge, Direction direction) const
Definition Style.h:865
const GridTrackList & gridTemplateColumns() const
Definition Style.h:211
void setGridColumnStart(GridLine value)
Definition Style.h:267
void setAlignContent(Align value)
Definition Style.h:87
void setAspectRatio(FloatOptional value)
Definition Style.h:346
Definition StyleLength.h:28
Definition StyleSizeLength.h:29
Definition StyleValueHandle.h:32
constexpr bool isPoint() const
Definition StyleValueHandle.h:56
constexpr bool isUndefined() const
Definition StyleValueHandle.h:40
constexpr bool isPercent() const
Definition StyleValueHandle.h:52
Definition StyleValuePool.h:28
StyleSizeLength getSize(StyleValueHandle handle) const
Definition StyleValuePool.h:87
StyleLength getLength(StyleValueHandle handle) const
Definition StyleValuePool.h:68
FloatOptional getNumber(StyleValueHandle handle) const
Definition StyleValuePool.h:112
Definition Benchmark.cpp:19
constexpr bool isDefined(std::floating_point auto value)
Definition Comparison.h:23
PhysicalEdge inlineEndEdge(FlexDirection flexDirection, Direction direction)
Definition FlexDirection.h:94
Justify
Definition Justify.h:18
Align
Definition Align.h:18
Direction
Definition Direction.h:18
Gutter
Definition Gutter.h:18
PhysicalEdge flexEndEdge(FlexDirection flexDirection)
Definition FlexDirection.h:68
void fatalWithMessage(const char *message)
Definition AssertFatal.cpp:18
Overflow
Definition Overflow.h:18
constexpr auto maxOrDefined(std::floating_point auto a, std::floating_point auto b)
Definition Comparison.h:35
PhysicalEdge inlineStartEdge(FlexDirection flexDirection, Direction direction)
Definition FlexDirection.h:83
PhysicalEdge flexStartEdge(FlexDirection flexDirection)
Definition FlexDirection.h:53
bool isRow(const FlexDirection flexDirection)
Definition FlexDirection.h:21
PositionType
Definition PositionType.h:18
Dimension dimension(FlexDirection flexDirection)
Definition FlexDirection.h:105
FlexDirection
Definition FlexDirection.h:18
std::vector< GridTrackSize > GridTrackList
Definition GridTrack.h:61
Dimension
Definition Dimension.h:18
BoxSizing
Definition BoxSizing.h:18
Display
Definition Display.h:18
PhysicalEdge
Definition PhysicalEdge.h:14
Definition FloatOptional.h:15
constexpr bool isDefined() const
Definition FloatOptional.h:36
Definition GridTrack.h:15