123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- /*
- * 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 <functional>
- #include <limits>
- namespace facebook {
- namespace react {
- enum class FontStyle { Normal, Italic, Oblique };
- enum class FontWeight : int {
- Weight100 = 100,
- UltraLight = 100,
- Weight200 = 200,
- Thin = 200,
- Weight300 = 300,
- Light = 300,
- Weight400 = 400,
- Regular = 400,
- Weight500 = 500,
- Medium = 500,
- Weight600 = 600,
- Semibold = 600,
- Demibold = 600,
- Weight700 = 700,
- Bold = 700,
- Weight800 = 800,
- Heavy = 800,
- Weight900 = 900,
- Black = 900
- };
- enum class FontVariant : int {
- Default = 0,
- SmallCaps = 1 << 1,
- OldstyleNums = 1 << 2,
- LiningNums = 1 << 3,
- TabularNums = 1 << 4,
- ProportionalNums = 1 << 5
- };
- enum class EllipsizeMode {
- Clip, // Do not add ellipsize, simply clip.
- Head, // Truncate at head of line: "...wxyz".
- Tail, // Truncate at tail of line: "abcd...".
- Middle // Truncate middle of line: "ab...yz".
- };
- enum class TextBreakStrategy { Simple, Balanced, HighQuality };
- enum class TextAlignment {
- Natural, // Indicates the default alignment for script.
- Left, // Visually left aligned.
- Center, // Visually centered.
- Right, // Visually right aligned.
- Justified // Fully-justified. The last line in a paragraph is natural-aligned.
- };
- enum class WritingDirection {
- Natural, // Determines direction using the Unicode Bidi Algorithm rules P2 and
- // P3.
- LeftToRight, // Left to right writing direction.
- RightToLeft // Right to left writing direction.
- };
- enum class TextDecorationLineType {
- None,
- Underline,
- Strikethrough,
- UnderlineStrikethrough
- };
- enum class TextDecorationLineStyle { Single, Thick, Double };
- enum class TextDecorationLinePattern {
- Solid,
- Dot,
- Dash,
- DashDot,
- DashDotDot,
- };
- } // namespace react
- } // namespace facebook
- namespace std {
- template <>
- struct hash<facebook::react::FontVariant> {
- size_t operator()(const facebook::react::FontVariant &v) const {
- return hash<int>()(static_cast<int>(v));
- }
- };
- template <>
- struct hash<facebook::react::TextAlignment> {
- size_t operator()(const facebook::react::TextAlignment &v) const {
- return hash<int>()(static_cast<int>(v));
- }
- };
- template <>
- struct hash<facebook::react::FontStyle> {
- size_t operator()(const facebook::react::FontStyle &v) const {
- return hash<int>()(static_cast<int>(v));
- }
- };
- template <>
- struct hash<facebook::react::TextDecorationLineType> {
- size_t operator()(const facebook::react::TextDecorationLineType &v) const {
- return hash<int>()(static_cast<int>(v));
- }
- };
- template <>
- struct hash<facebook::react::WritingDirection> {
- size_t operator()(const facebook::react::WritingDirection &v) const {
- return hash<int>()(static_cast<int>(v));
- }
- };
- template <>
- struct hash<facebook::react::TextDecorationLinePattern> {
- size_t operator()(const facebook::react::TextDecorationLinePattern &v) const {
- return hash<int>()(static_cast<int>(v));
- }
- };
- template <>
- struct hash<facebook::react::TextDecorationLineStyle> {
- size_t operator()(const facebook::react::TextDecorationLineStyle &v) const {
- return hash<int>()(static_cast<int>(v));
- }
- };
- template <>
- struct hash<facebook::react::FontWeight> {
- size_t operator()(const facebook::react::FontWeight &v) const {
- return hash<int>()(static_cast<int>(v));
- }
- };
- template <>
- struct hash<facebook::react::EllipsizeMode> {
- size_t operator()(const facebook::react::EllipsizeMode &v) const {
- return hash<int>()(static_cast<int>(v));
- }
- };
- template <>
- struct hash<facebook::react::TextBreakStrategy> {
- size_t operator()(const facebook::react::TextBreakStrategy &v) const {
- return hash<int>()(static_cast<int>(v));
- }
- };
- } // namespace std
|