|
12 | 12 |
|
13 | 13 | namespace facebook::react { |
14 | 14 |
|
15 | | -enum PropName { |
| 15 | +enum class PropName { |
16 | 16 | OPACITY, |
17 | 17 | WIDTH, |
18 | 18 | HEIGHT, |
@@ -51,7 +51,11 @@ enum PropName { |
51 | 51 | MAX_HEIGHT, |
52 | 52 | MAX_WIDTH, |
53 | 53 | MIN_HEIGHT, |
54 | | - MIN_WIDTH |
| 54 | + MIN_WIDTH, |
| 55 | + OVERFLOW, |
| 56 | + POSITION_TYPE, |
| 57 | + Z_INDEX, |
| 58 | + DIRECTION, |
55 | 59 | }; |
56 | 60 |
|
57 | 61 | struct AnimatedPropBase { |
@@ -87,23 +91,23 @@ struct AnimatedProps { |
87 | 91 | inline void cloneProp(BaseViewProps &viewProps, const AnimatedPropBase &animatedProp) |
88 | 92 | { |
89 | 93 | switch (animatedProp.propName) { |
90 | | - case OPACITY: |
| 94 | + case PropName::OPACITY: |
91 | 95 | viewProps.opacity = get<Float>(animatedProp); |
92 | 96 | break; |
93 | 97 |
|
94 | | - case WIDTH: |
| 98 | + case PropName::WIDTH: |
95 | 99 | viewProps.yogaStyle.setDimension(yoga::Dimension::Width, get<yoga::Style::SizeLength>(animatedProp)); |
96 | 100 | break; |
97 | 101 |
|
98 | | - case HEIGHT: |
| 102 | + case PropName::HEIGHT: |
99 | 103 | viewProps.yogaStyle.setDimension(yoga::Dimension::Height, get<yoga::Style::SizeLength>(animatedProp)); |
100 | 104 | break; |
101 | 105 |
|
102 | | - case BORDER_RADII: |
| 106 | + case PropName::BORDER_RADII: |
103 | 107 | viewProps.borderRadii = get<CascadedBorderRadii>(animatedProp); |
104 | 108 | break; |
105 | 109 |
|
106 | | - case BORDER_WIDTH: { |
| 110 | + case PropName::BORDER_WIDTH: { |
107 | 111 | const auto &borderWidths = get<CascadedRectangleEdges<yoga::StyleLength>>(animatedProp); |
108 | 112 | if (borderWidths.left.has_value()) { |
109 | 113 | viewProps.yogaStyle.setBorder(yoga::Edge::Left, borderWidths.left.value()); |
@@ -135,11 +139,11 @@ inline void cloneProp(BaseViewProps &viewProps, const AnimatedPropBase &animated |
135 | 139 | break; |
136 | 140 | } |
137 | 141 |
|
138 | | - case BORDER_COLOR: |
| 142 | + case PropName::BORDER_COLOR: |
139 | 143 | viewProps.borderColors = get<CascadedBorderColors>(animatedProp); |
140 | 144 | break; |
141 | 145 |
|
142 | | - case MARGIN: { |
| 146 | + case PropName::MARGIN: { |
143 | 147 | const auto &margins = get<CascadedRectangleEdges<yoga::StyleLength>>(animatedProp); |
144 | 148 | if (margins.left.has_value()) { |
145 | 149 | viewProps.yogaStyle.setMargin(yoga::Edge::Left, margins.left.value()); |
@@ -171,7 +175,7 @@ inline void cloneProp(BaseViewProps &viewProps, const AnimatedPropBase &animated |
171 | 175 | break; |
172 | 176 | } |
173 | 177 |
|
174 | | - case PADDING: { |
| 178 | + case PropName::PADDING: { |
175 | 179 | const auto &paddings = get<CascadedRectangleEdges<yoga::StyleLength>>(animatedProp); |
176 | 180 | if (paddings.left.has_value()) { |
177 | 181 | viewProps.yogaStyle.setPadding(yoga::Edge::Left, paddings.left.value()); |
@@ -203,7 +207,7 @@ inline void cloneProp(BaseViewProps &viewProps, const AnimatedPropBase &animated |
203 | 207 | break; |
204 | 208 | } |
205 | 209 |
|
206 | | - case POSITION: { |
| 210 | + case PropName::POSITION: { |
207 | 211 | const auto &positions = get<CascadedRectangleEdges<yoga::StyleLength>>(animatedProp); |
208 | 212 | if (positions.left.has_value()) { |
209 | 213 | viewProps.yogaStyle.setPosition(yoga::Edge::Left, positions.left.value()); |
@@ -235,127 +239,140 @@ inline void cloneProp(BaseViewProps &viewProps, const AnimatedPropBase &animated |
235 | 239 | break; |
236 | 240 | } |
237 | 241 |
|
238 | | - case FLEX: |
| 242 | + case PropName::FLEX: |
239 | 243 | viewProps.yogaStyle.setFlex(get<yoga::FloatOptional>(animatedProp)); |
240 | 244 | break; |
241 | 245 |
|
242 | | - case TRANSFORM: |
| 246 | + case PropName::TRANSFORM: |
243 | 247 | viewProps.transform = get<Transform>(animatedProp); |
244 | 248 | break; |
245 | 249 |
|
246 | | - case BACKGROUND_COLOR: |
| 250 | + case PropName::BACKGROUND_COLOR: |
247 | 251 | viewProps.backgroundColor = get<SharedColor>(animatedProp); |
248 | 252 | break; |
249 | 253 |
|
250 | | - case SHADOW_COLOR: |
| 254 | + case PropName::SHADOW_COLOR: |
251 | 255 | viewProps.shadowColor = get<SharedColor>(animatedProp); |
252 | 256 | break; |
253 | 257 |
|
254 | | - case SHADOW_OFFSET: |
| 258 | + case PropName::SHADOW_OFFSET: |
255 | 259 | viewProps.shadowOffset = get<Size>(animatedProp); |
256 | 260 | break; |
257 | 261 |
|
258 | | - case SHADOW_OPACITY: |
| 262 | + case PropName::SHADOW_OPACITY: |
259 | 263 | viewProps.shadowOpacity = get<Float>(animatedProp); |
260 | 264 | break; |
261 | 265 |
|
262 | | - case SHADOW_RADIUS: |
| 266 | + case PropName::SHADOW_RADIUS: |
263 | 267 | viewProps.shadowRadius = get<Float>(animatedProp); |
264 | 268 | break; |
265 | 269 |
|
266 | | - case FILTER: |
| 270 | + case PropName::FILTER: |
267 | 271 | viewProps.filter = get<std::vector<FilterFunction>>(animatedProp); |
268 | 272 | break; |
269 | 273 |
|
270 | | - case OUTLINE_COLOR: |
| 274 | + case PropName::OUTLINE_COLOR: |
271 | 275 | viewProps.outlineColor = get<SharedColor>(animatedProp); |
272 | 276 | break; |
273 | 277 |
|
274 | | - case OUTLINE_OFFSET: |
| 278 | + case PropName::OUTLINE_OFFSET: |
275 | 279 | viewProps.outlineOffset = get<Float>(animatedProp); |
276 | 280 | break; |
277 | 281 |
|
278 | | - case OUTLINE_STYLE: |
| 282 | + case PropName::OUTLINE_STYLE: |
279 | 283 | viewProps.outlineStyle = get<OutlineStyle>(animatedProp); |
280 | 284 | break; |
281 | 285 |
|
282 | | - case OUTLINE_WIDTH: |
| 286 | + case PropName::OUTLINE_WIDTH: |
283 | 287 | viewProps.outlineWidth = get<Float>(animatedProp); |
284 | 288 | break; |
285 | 289 |
|
286 | | - case ALIGN_CONTENT: |
| 290 | + case PropName::ALIGN_CONTENT: |
287 | 291 | viewProps.yogaStyle.setAlignContent(get<yoga::Align>(animatedProp)); |
288 | 292 | break; |
289 | 293 |
|
290 | | - case ALIGN_ITEMS: |
| 294 | + case PropName::ALIGN_ITEMS: |
291 | 295 | viewProps.yogaStyle.setAlignItems(get<yoga::Align>(animatedProp)); |
292 | 296 | break; |
293 | 297 |
|
294 | | - case ALIGN_SELF: |
| 298 | + case PropName::ALIGN_SELF: |
295 | 299 | viewProps.yogaStyle.setAlignSelf(get<yoga::Align>(animatedProp)); |
296 | 300 | break; |
297 | 301 |
|
298 | | - case ASPECT_RATIO: |
| 302 | + case PropName::ASPECT_RATIO: |
299 | 303 | viewProps.yogaStyle.setAspectRatio(get<yoga::FloatOptional>(animatedProp)); |
300 | 304 | break; |
301 | 305 |
|
302 | | - case BOX_SIZING: |
| 306 | + case PropName::BOX_SIZING: |
303 | 307 | viewProps.yogaStyle.setBoxSizing(get<yoga::BoxSizing>(animatedProp)); |
304 | 308 | break; |
305 | 309 |
|
306 | | - case DISPLAY: |
| 310 | + case PropName::DISPLAY: |
307 | 311 | viewProps.yogaStyle.setDisplay(get<yoga::Display>(animatedProp)); |
308 | 312 | break; |
309 | 313 |
|
310 | | - case FLEX_BASIS: |
| 314 | + case PropName::FLEX_BASIS: |
311 | 315 | viewProps.yogaStyle.setFlexBasis(get<yoga::Style::SizeLength>(animatedProp)); |
312 | 316 | break; |
313 | 317 |
|
314 | | - case FLEX_DIRECTION: |
| 318 | + case PropName::FLEX_DIRECTION: |
315 | 319 | viewProps.yogaStyle.setFlexDirection(get<yoga::FlexDirection>(animatedProp)); |
316 | 320 | break; |
317 | 321 |
|
318 | | - case ROW_GAP: |
| 322 | + case PropName::ROW_GAP: |
319 | 323 | viewProps.yogaStyle.setGap(yoga::Gutter::Row, get<yoga::Style::Length>(animatedProp)); |
320 | 324 | break; |
321 | 325 |
|
322 | | - case COLUMN_GAP: |
| 326 | + case PropName::COLUMN_GAP: |
323 | 327 | viewProps.yogaStyle.setGap(yoga::Gutter::Column, get<yoga::Style::Length>(animatedProp)); |
324 | 328 | break; |
325 | 329 |
|
326 | | - case FLEX_GROW: |
| 330 | + case PropName::FLEX_GROW: |
327 | 331 | viewProps.yogaStyle.setFlexGrow(get<yoga::FloatOptional>(animatedProp)); |
328 | 332 | break; |
329 | 333 |
|
330 | | - case FLEX_SHRINK: |
| 334 | + case PropName::FLEX_SHRINK: |
331 | 335 | viewProps.yogaStyle.setFlexShrink(get<yoga::FloatOptional>(animatedProp)); |
332 | 336 | break; |
333 | 337 |
|
334 | | - case FLEX_WRAP: |
| 338 | + case PropName::FLEX_WRAP: |
335 | 339 | viewProps.yogaStyle.setFlexWrap(get<yoga::Wrap>(animatedProp)); |
336 | 340 | break; |
337 | 341 |
|
338 | | - case JUSTIFY_CONTENT: |
| 342 | + case PropName::JUSTIFY_CONTENT: |
339 | 343 | viewProps.yogaStyle.setJustifyContent(get<yoga::Justify>(animatedProp)); |
340 | 344 | break; |
341 | 345 |
|
342 | | - case MAX_HEIGHT: |
| 346 | + case PropName::MAX_HEIGHT: |
343 | 347 | viewProps.yogaStyle.setMaxDimension(yoga::Dimension::Height, get<yoga::Style::SizeLength>(animatedProp)); |
344 | 348 | break; |
345 | 349 |
|
346 | | - case MAX_WIDTH: |
| 350 | + case PropName::MAX_WIDTH: |
347 | 351 | viewProps.yogaStyle.setMaxDimension(yoga::Dimension::Width, get<yoga::Style::SizeLength>(animatedProp)); |
348 | 352 | break; |
349 | 353 |
|
350 | | - case MIN_HEIGHT: |
| 354 | + case PropName::MIN_HEIGHT: |
351 | 355 | viewProps.yogaStyle.setMinDimension(yoga::Dimension::Height, get<yoga::Style::SizeLength>(animatedProp)); |
352 | 356 | break; |
353 | 357 |
|
354 | | - case MIN_WIDTH: |
| 358 | + case PropName::MIN_WIDTH: |
355 | 359 | viewProps.yogaStyle.setMinDimension(yoga::Dimension::Width, get<yoga::Style::SizeLength>(animatedProp)); |
356 | 360 | break; |
357 | 361 |
|
358 | | - default: |
| 362 | + case PropName::OVERFLOW: |
| 363 | + viewProps.yogaStyle.setOverflow(get<yoga::Overflow>(animatedProp)); |
| 364 | + break; |
| 365 | + |
| 366 | + case PropName::POSITION_TYPE: |
| 367 | + viewProps.yogaStyle.setPositionType(get<yoga::PositionType>(animatedProp)); |
| 368 | + break; |
| 369 | + |
| 370 | + case PropName::Z_INDEX: |
| 371 | + viewProps.zIndex = get<std::optional<int>>(animatedProp); |
| 372 | + break; |
| 373 | + |
| 374 | + case PropName::DIRECTION: |
| 375 | + viewProps.yogaStyle.setDirection(get<yoga::Direction>(animatedProp)); |
359 | 376 | break; |
360 | 377 | } |
361 | 378 | } |
|
0 commit comments