Files
react-native/ReactCommon/fabric/components/view/ViewProps.h
T
Valentin SherginandFacebook Github Bot b4044e5b1b Fabric: Fixed overlapping border radii
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
2019-04-22 09:04:54 -07:00

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