/** * Copyright (c) 2015-present, Facebook, Inc. * * 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 #include #include #include #include #include #include #include namespace facebook { namespace react { class TextAttributes; using SharedTextAttributes = std::shared_ptr; class TextAttributes: public DebugStringConvertible { public: #pragma mark - Fields // Color SharedColor foregroundColor {}; SharedColor backgroundColor {}; Float opacity {std::numeric_limits::quiet_NaN()}; // Font std::string fontFamily {""}; Float fontSize {std::numeric_limits::quiet_NaN()}; Float fontSizeMultiplier {std::numeric_limits::quiet_NaN()}; folly::Optional fontWeight {}; folly::Optional fontStyle {}; folly::Optional fontVariant {}; folly::Optional allowFontScaling {}; Float letterSpacing {std::numeric_limits::quiet_NaN()}; // Paragraph Styles Float lineHeight {std::numeric_limits::quiet_NaN()}; folly::Optional alignment {}; folly::Optional baseWritingDirection {}; // Decoration SharedColor textDecorationColor {}; folly::Optional textDecorationLineType {}; folly::Optional textDecorationLineStyle {}; folly::Optional textDecorationLinePattern {}; // Shadow // TODO: Use `Point` type instead of `Size` for `textShadowOffset` attribute. folly::Optional textShadowOffset {}; Float textShadowRadius {std::numeric_limits::quiet_NaN()}; SharedColor textShadowColor {}; // Special folly::Optional isHighlighted {}; folly::Optional layoutDirection {}; #pragma mark - Operations void apply(TextAttributes textAttributes); #pragma mark - DebugStringConvertible SharedDebugStringConvertibleList getDebugProps() const override; }; } // namespace react } // namespace facebook