Skip to content

Commit

Permalink
C++ style enums 17/N: Gutter (facebook#39599)
Browse files Browse the repository at this point in the history
Summary:
Pull Request resolved: facebook#39599

X-link: facebook/yoga#1407

Replaces internal usages of YGGutter with Gutter.

Changelog: [Internal]

Differential Revision: D49532100

fbshipit-source-id: c4e5965d092a02b8d5ccc779d8a1f4bef7ad406f
  • Loading branch information
NickGerleman authored and facebook-github-bot committed Sep 28, 2023
1 parent 9b15c82 commit 23d8bbf
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -195,14 +195,14 @@ static inline T const getFieldValue(
REBUILD_YG_FIELD_SWITCH_CASE_INDEXED_SETTER( \
field, setter, yoga::Dimension::Height, heightStr);

#define REBUILD_FIELD_YG_GUTTER( \
field, setter, rowGapStr, columnGapStr, gapStr) \
REBUILD_YG_FIELD_SWITCH_CASE_INDEXED_SETTER( \
field, setter, YGGutterRow, rowGapStr); \
REBUILD_YG_FIELD_SWITCH_CASE_INDEXED_SETTER( \
field, setter, YGGutterColumn, columnGapStr); \
REBUILD_YG_FIELD_SWITCH_CASE_INDEXED_SETTER( \
field, setter, YGGutterAll, gapStr);
#define REBUILD_FIELD_YG_GUTTER( \
field, setter, rowGapStr, columnGapStr, gapStr) \
REBUILD_YG_FIELD_SWITCH_CASE_INDEXED_SETTER( \
field, setter, yoga::Gutter::Row, rowGapStr); \
REBUILD_YG_FIELD_SWITCH_CASE_INDEXED_SETTER( \
field, setter, yoga::Gutter::Column, columnGapStr); \
REBUILD_YG_FIELD_SWITCH_CASE_INDEXED_SETTER( \
field, setter, yoga::Gutter::All, gapStr);

#define REBUILD_FIELD_YG_EDGES(field, prefix, suffix) \
REBUILD_YG_FIELD_SWITCH_CASE_INDEXED( \
Expand Down Expand Up @@ -329,14 +329,16 @@ SharedDebugStringConvertibleList YogaStylableProps::getDebugProps() const {
"flexGrow", yogaStyle.flexGrow(), defaultYogaStyle.flexGrow()),
debugStringConvertibleItem(
"rowGap",
yogaStyle.gap(YGGutterRow),
defaultYogaStyle.gap(YGGutterRow)),
yogaStyle.gap(yoga::Gutter::Row),
defaultYogaStyle.gap(yoga::Gutter::Row)),
debugStringConvertibleItem(
"columnGap",
yogaStyle.gap(YGGutterColumn),
defaultYogaStyle.gap(YGGutterColumn)),
yogaStyle.gap(yoga::Gutter::Column),
defaultYogaStyle.gap(yoga::Gutter::Column)),
debugStringConvertibleItem(
"gap", yogaStyle.gap(YGGutterAll), defaultYogaStyle.gap(YGGutterAll)),
"gap",
yogaStyle.gap(yoga::Gutter::All),
defaultYogaStyle.gap(yoga::Gutter::All)),
debugStringConvertibleItem(
"flexShrink", yogaStyle.flexShrink(), defaultYogaStyle.flexShrink()),
debugStringConvertibleItem(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -245,31 +245,31 @@ static inline yoga::Style convertRawProp(
yogaStyle.padding());

yogaStyle.setGap(
YGGutterRow,
yoga::Gutter::Row,
convertRawProp(
context,
rawProps,
"rowGap",
sourceValue.gap(YGGutterRow),
yogaStyle.gap(YGGutterRow)));
sourceValue.gap(yoga::Gutter::Row),
yogaStyle.gap(yoga::Gutter::Row)));

yogaStyle.setGap(
YGGutterColumn,
yoga::Gutter::Column,
convertRawProp(
context,
rawProps,
"columnGap",
sourceValue.gap(YGGutterColumn),
yogaStyle.gap(YGGutterColumn)));
sourceValue.gap(yoga::Gutter::Column),
yogaStyle.gap(yoga::Gutter::Column)));

yogaStyle.setGap(
YGGutterAll,
yoga::Gutter::All,
convertRawProp(
context,
rawProps,
"gap",
sourceValue.gap(YGGutterAll),
yogaStyle.gap(YGGutterAll)));
sourceValue.gap(yoga::Gutter::All),
yogaStyle.gap(yoga::Gutter::All)));

yogaStyle.border() = convertRawProp(
context,
Expand Down
5 changes: 3 additions & 2 deletions packages/react-native/ReactCommon/yoga/yoga/Yoga.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -635,11 +635,12 @@ void YGNodeStyleSetGap(
const YGGutter gutter,
const float gapLength) {
auto length = CompactValue::ofMaybe<YGUnitPoint>(gapLength);
updateIndexedStyleProp<&Style::gap, &Style::setGap>(node, gutter, length);
updateIndexedStyleProp<&Style::gap, &Style::setGap>(
node, scopedEnum(gutter), length);
}

float YGNodeStyleGetGap(const YGNodeConstRef node, const YGGutter gutter) {
auto gapLength = resolveRef(node)->getStyle().gap(gutter);
auto gapLength = resolveRef(node)->getStyle().gap(scopedEnum(gutter));
if (gapLength.isUndefined() || gapLength.isAuto()) {
return YGUndefined;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,11 +177,11 @@ void nodeToString(
appendEdges(str, "padding", style.padding());
appendEdges(str, "border", style.border());

if (!style.gap(YGGutterAll).isUndefined()) {
appendNumberIfNotUndefined(str, "gap", style.gap(YGGutterAll));
if (!style.gap(Gutter::All).isUndefined()) {
appendNumberIfNotUndefined(str, "gap", style.gap(Gutter::All));
} else {
appendNumberIfNotUndefined(str, "column-gap", style.gap(YGGutterColumn));
appendNumberIfNotUndefined(str, "row-gap", style.gap(YGGutterRow));
appendNumberIfNotUndefined(str, "column-gap", style.gap(Gutter::Column));
appendNumberIfNotUndefined(str, "row-gap", style.gap(Gutter::Row));
}

appendNumberIfNotAuto(str, "width", style.dimension(Dimension::Width));
Expand Down
23 changes: 12 additions & 11 deletions packages/react-native/ReactCommon/yoga/yoga/style/Style.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <yoga/enums/Direction.h>
#include <yoga/enums/Display.h>
#include <yoga/enums/FlexDirection.h>
#include <yoga/enums/Gutter.h>
#include <yoga/enums/Justify.h>
#include <yoga/enums/Overflow.h>
#include <yoga/enums/PositionType.h>
Expand All @@ -36,7 +37,7 @@ class YG_EXPORT Style {
public:
using Dimensions = Values<Dimension>;
using Edges = Values<YGEdge>;
using Gutters = Values<YGGutter>;
using Gutters = Values<Gutter>;

static constexpr float DefaultFlexGrow = 0.0f;
static constexpr float DefaultFlexShrink = 0.0f;
Expand Down Expand Up @@ -274,11 +275,11 @@ class YG_EXPORT Style {
return {*this};
}

CompactValue gap(YGGutter gutter) const {
return gap_[gutter];
CompactValue gap(Gutter gutter) const {
return gap_[yoga::to_underlying(gutter)];
}
void setGap(YGGutter gutter, CompactValue value) {
gap_[gutter] = value;
void setGap(Gutter gutter, CompactValue value) {
gap_[yoga::to_underlying(gutter)] = value;
}

CompactValue dimension(Dimension axis) const {
Expand Down Expand Up @@ -311,18 +312,18 @@ class YG_EXPORT Style {
}

CompactValue resolveColumnGap() const {
if (!gap_[YGGutterColumn].isUndefined()) {
return gap_[YGGutterColumn];
if (!gap_[yoga::to_underlying(Gutter::Column)].isUndefined()) {
return gap_[yoga::to_underlying(Gutter::Column)];
} else {
return gap_[YGGutterAll];
return gap_[yoga::to_underlying(Gutter::All)];
}
}

CompactValue resolveRowGap() const {
if (!gap_[YGGutterRow].isUndefined()) {
return gap_[YGGutterRow];
if (!gap_[yoga::to_underlying(Gutter::Row)].isUndefined()) {
return gap_[yoga::to_underlying(Gutter::Row)];
} else {
return gap_[YGGutterAll];
return gap_[yoga::to_underlying(Gutter::All)];
}
}

Expand Down

0 comments on commit 23d8bbf

Please sign in to comment.