mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: UAs must adjust border radius values to fit a content box: >>> Corner curves must not overlap: When the sum of any two adjacent border radii exceeds the size of the border box, UAs must proportionally reduce the used values of all border radii until none of them overlap. This diff implements that. Reviewed By: mdvacca Differential Revision: D15028325 fbshipit-source-id: 368232ffa2fa0409d13759bbbe7fe10f8474c400
78 lines
1.9 KiB
C++
78 lines
1.9 KiB
C++
/**
|
|
* Copyright (c) Facebook, Inc. and its 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 <react/components/view/AccessibilityProps.h>
|
|
#include <react/components/view/YogaStylableProps.h>
|
|
#include <react/components/view/primitives.h>
|
|
#include <react/core/LayoutMetrics.h>
|
|
#include <react/core/Props.h>
|
|
#include <react/graphics/Color.h>
|
|
#include <react/graphics/Geometry.h>
|
|
#include <react/graphics/Transform.h>
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
class ViewProps;
|
|
|
|
using SharedViewProps = std::shared_ptr<ViewProps const>;
|
|
|
|
class ViewProps : public Props,
|
|
public YogaStylableProps,
|
|
public AccessibilityProps {
|
|
public:
|
|
ViewProps() = default;
|
|
ViewProps(YGStyle const &yogaStyle);
|
|
ViewProps(ViewProps const &sourceProps, RawProps const &rawProps);
|
|
|
|
#pragma mark - Props
|
|
|
|
// Color
|
|
Float const opacity{1.0};
|
|
SharedColor const foregroundColor{};
|
|
SharedColor const backgroundColor{};
|
|
|
|
// Borders
|
|
CascadedBorderRadii const borderRadii{};
|
|
CascadedBorderColors const borderColors{};
|
|
CascadedBorderStyles const borderStyles{};
|
|
|
|
// Shadow
|
|
SharedColor const shadowColor{};
|
|
Size const shadowOffset{};
|
|
Float const shadowOpacity{};
|
|
Float const shadowRadius{};
|
|
|
|
// Transform
|
|
Transform transform{};
|
|
bool const backfaceVisibility{};
|
|
bool const shouldRasterize{};
|
|
int const zIndex{};
|
|
|
|
// Events
|
|
PointerEventsMode const pointerEvents{};
|
|
EdgeInsets const hitSlop{};
|
|
bool const onLayout{};
|
|
|
|
bool const collapsable{true};
|
|
|
|
#pragma mark - Convenience Methods
|
|
|
|
BorderMetrics resolveBorderMetrics(LayoutMetrics const &layoutMetrics) const;
|
|
|
|
#pragma mark - DebugStringConvertible
|
|
|
|
#if RN_DEBUG_STRING_CONVERTIBLE
|
|
SharedDebugStringConvertibleList getDebugProps() const override;
|
|
#endif
|
|
};
|
|
|
|
} // namespace react
|
|
} // namespace facebook
|