New file for layout methods related to absolute children (#1495)
Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/1495 X-link: https://github.com/facebook/react-native/pull/41794 This is a copy of D51369722 to make it so that it preserves the file history CalculateLayout.cpp is massive and approaching 3k lines. I added a few large functions dealing with layout of absolute nodes and was thinking it would be nice if that logic was just in its own file so it was more isolated and easier to reason about. So I made AbsoluteLayout.cpp and AbsoluteLayout.h to house this logic. In order for this to work I had to expose calculateLayoutInternal in CalculateLayout.h as layoutAbsoluteChild calls it. This is unideal and I would like to find a better way... I also make LayoutUtils.h to house misc small helper methods as they are called in AbsoluteLayout.cpp and CalculateLayout.cpp Reviewed By: NickGerleman Differential Revision: D51824115 fbshipit-source-id: 9b27449e3c1516492c01e6167a6b2c4568a33807
This commit is contained in:
committed by
Facebook GitHub Bot
parent
7893c4bd85
commit
dde0fda9f5
38
yoga/algorithm/AbsoluteLayout.h
Normal file
38
yoga/algorithm/AbsoluteLayout.h
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <yoga/event/event.h>
|
||||
#include <yoga/node/Node.h>
|
||||
|
||||
namespace facebook::yoga {
|
||||
|
||||
void layoutAbsoluteChild(
|
||||
const yoga::Node* const containingNode,
|
||||
const yoga::Node* const node,
|
||||
yoga::Node* const child,
|
||||
const float containingBlockWidth,
|
||||
const float containingBlockHeight,
|
||||
const SizingMode widthMode,
|
||||
const Direction direction,
|
||||
LayoutData& layoutMarkerData,
|
||||
const uint32_t depth,
|
||||
const uint32_t generationCount);
|
||||
|
||||
void layoutAbsoluteDescendants(
|
||||
yoga::Node* containingNode,
|
||||
yoga::Node* currentNode,
|
||||
SizingMode widthSizingMode,
|
||||
Direction currentNodeDirection,
|
||||
LayoutData& layoutMarkerData,
|
||||
uint32_t currentDepth,
|
||||
uint32_t generationCount,
|
||||
float currentNodeMainOffsetFromContainingBlock,
|
||||
float currentNodeCrossOffsetFromContainingBlock);
|
||||
|
||||
} // namespace facebook::yoga
|
Reference in New Issue
Block a user