12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /*
- * 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 YogaStylableProps, public AccessibilityProps {
- public:
- ViewProps() = default;
- ViewProps(ViewProps const &sourceProps, RawProps const &rawProps);
- #pragma mark - Props
- // Color
- Float opacity{1.0};
- SharedColor foregroundColor{};
- SharedColor backgroundColor{};
- // Borders
- CascadedBorderRadii borderRadii{};
- CascadedBorderColors borderColors{};
- CascadedBorderStyles borderStyles{};
- // Shadow
- SharedColor shadowColor{};
- Size shadowOffset{};
- Float shadowOpacity{};
- Float shadowRadius{};
- // Transform
- Transform transform{};
- BackfaceVisibility backfaceVisibility{};
- bool shouldRasterize{};
- int zIndex{};
- // Events
- PointerEventsMode pointerEvents{};
- EdgeInsets hitSlop{};
- bool onLayout{};
- bool collapsable{true};
- #pragma mark - Convenience Methods
- BorderMetrics resolveBorderMetrics(LayoutMetrics const &layoutMetrics) const;
- bool getClipsContentToBounds() const;
- #ifdef ANDROID
- bool getProbablyMoreHorizontalThanVertical_DEPRECATED() const;
- #endif
- #pragma mark - DebugStringConvertible
- #if RN_DEBUG_STRING_CONVERTIBLE
- SharedDebugStringConvertibleList getDebugProps() const override;
- #endif
- };
- } // namespace react
- } // namespace facebook
|