1 #import <Foundation/Foundation.h> 2 3 #ifndef RNTextProperties_h 4 #define RNTextProperties_h 5 6 typedef NS_ENUM(NSInteger, RNSVGAlignmentBaseline) { 7 RNSVGAlignmentBaselineBaseline, 8 RNSVGAlignmentBaselineTextBottom, 9 RNSVGAlignmentBaselineAlphabetic, 10 RNSVGAlignmentBaselineIdeographic, 11 RNSVGAlignmentBaselineMiddle, 12 RNSVGAlignmentBaselineCentral, 13 RNSVGAlignmentBaselineMathematical, 14 RNSVGAlignmentBaselineTextTop, 15 RNSVGAlignmentBaselineBottom, 16 RNSVGAlignmentBaselineCenter, 17 RNSVGAlignmentBaselineTop, 18 /* 19 SVG implementations may support the following aliases in order to support legacy content: 20 21 text-before-edge = text-top 22 text-after-edge = text-bottom 23 */ 24 RNSVGAlignmentBaselineTextBeforeEdge, 25 RNSVGAlignmentBaselineTextAfterEdge, 26 // SVG 1.1 27 RNSVGAlignmentBaselineBeforeEdge, 28 RNSVGAlignmentBaselineAfterEdge, 29 RNSVGAlignmentBaselineHanging, 30 RNSVGAlignmentBaselineDEFAULT = RNSVGAlignmentBaselineBaseline 31 }; 32 33 static NSString *const RNSVGAlignmentBaselineStrings[] = { 34 @"baseline", @"text-bottom", @"alphabetic", @"ideographic", @"middle", @"central", 35 @"mathematical", @"text-top", @"bottom", @"center", @"top", @"text-before-edge", 36 @"text-after-edge", @"before-edge", @"after-edge", @"hanging", @"central", @"mathematical", 37 @"text-top", @"bottom", @"center", @"top", nil}; 38 39 NSString *RNSVGAlignmentBaselineToString(enum RNSVGAlignmentBaseline fw); 40 41 enum RNSVGAlignmentBaseline RNSVGAlignmentBaselineFromString(NSString *s); 42 43 typedef NS_ENUM(NSInteger, RNSVGFontStyle) { 44 RNSVGFontStyleNormal, 45 RNSVGFontStyleItalic, 46 RNSVGFontStyleOblique, 47 RNSVGFontStyleDEFAULT = RNSVGFontStyleNormal, 48 }; 49 50 static NSString *const RNSVGFontStyleStrings[] = {@"normal", @"italic", @"oblique", nil}; 51 52 NSString *RNSVGFontStyleToString(enum RNSVGFontStyle fw); 53 54 enum RNSVGFontStyle RNSVGFontStyleFromString(NSString *s); 55 56 typedef NS_ENUM(NSInteger, RNSVGFontVariantLigatures) { 57 RNSVGFontVariantLigaturesNormal, 58 RNSVGFontVariantLigaturesNone, 59 RNSVGFontVariantLigaturesDEFAULT = RNSVGFontVariantLigaturesNormal, 60 }; 61 62 static NSString *const RNSVGFontVariantLigaturesStrings[] = {@"normal", @"none", nil}; 63 64 NSString *RNSVGFontVariantLigaturesToString(enum RNSVGFontVariantLigatures fw); 65 66 enum RNSVGFontVariantLigatures RNSVGFontVariantLigaturesFromString(NSString *s); 67 68 typedef NS_ENUM(NSInteger, RNSVGFontWeight) { 69 // Absolute 70 RNSVGFontWeightNormal, 71 RNSVGFontWeightBold, 72 RNSVGFontWeight100, 73 RNSVGFontWeight200, 74 RNSVGFontWeight300, 75 RNSVGFontWeight400, 76 RNSVGFontWeight500, 77 RNSVGFontWeight600, 78 RNSVGFontWeight700, 79 RNSVGFontWeight800, 80 RNSVGFontWeight900, 81 // Relative 82 RNSVGFontWeightBolder, 83 RNSVGFontWeightLighter, 84 RNSVGFontWeightDEFAULT = RNSVGFontWeightNormal, 85 }; 86 87 static NSString *const RNSVGFontWeightStrings[] = { 88 @"normal", 89 @"bold", 90 @"100", 91 @"200", 92 @"300", 93 @"400", 94 @"500", 95 @"600", 96 @"700", 97 @"800", 98 @"900", 99 @"bolder", 100 @"lighter", 101 nil}; 102 103 static int const RNSVGAbsoluteFontWeights[] = {400, 700, 100, 200, 300, 400, 500, 600, 700, 800, 900}; 104 105 static RNSVGFontWeight const RNSVGFontWeights[] = { 106 RNSVGFontWeight100, 107 RNSVGFontWeight100, 108 RNSVGFontWeight200, 109 RNSVGFontWeight300, 110 RNSVGFontWeightNormal, 111 RNSVGFontWeight500, 112 RNSVGFontWeight600, 113 RNSVGFontWeightBold, 114 RNSVGFontWeight800, 115 RNSVGFontWeight900, 116 RNSVGFontWeight900}; 117 118 NSString *RNSVGFontWeightToString(enum RNSVGFontWeight fw); 119 120 NSInteger RNSVGFontWeightFromString(NSString *s); 121 122 typedef NS_ENUM(NSInteger, RNSVGTextAnchor) { 123 RNSVGTextAnchorStart, 124 RNSVGTextAnchorMiddle, 125 RNSVGTextAnchorEnd, 126 RNSVGTextAnchorDEFAULT = RNSVGTextAnchorStart, 127 }; 128 129 static NSString *const RNSVGTextAnchorStrings[] = {@"start", @"middle", @"end", nil}; 130 131 NSString *RNSVGTextAnchorToString(enum RNSVGTextAnchor fw); 132 133 enum RNSVGTextAnchor RNSVGTextAnchorFromString(NSString *s); 134 135 typedef NS_ENUM(NSInteger, RNSVGTextDecoration) { 136 RNSVGTextDecorationNone, 137 RNSVGTextDecorationUnderline, 138 RNSVGTextDecorationOverline, 139 RNSVGTextDecorationLineThrough, 140 RNSVGTextDecorationBlink, 141 RNSVGTextDecorationDEFAULT = RNSVGTextDecorationNone, 142 }; 143 144 static NSString *const RNSVGTextDecorationStrings[] = 145 {@"None", @"Underline", @"Overline", @"LineThrough", @"Blink", nil}; 146 147 NSString *RNSVGTextDecorationToString(enum RNSVGTextDecoration fw); 148 149 enum RNSVGTextDecoration RNSVGTextDecorationFromString(NSString *s); 150 151 typedef NS_ENUM(NSInteger, RNSVGTextLengthAdjust) { 152 RNSVGTextLengthAdjustSpacing, 153 RNSVGTextLengthAdjustSpacingAndGlyphs, 154 RNSVGTextLengthAdjustDEFAULT = RNSVGTextLengthAdjustSpacing, 155 }; 156 157 static NSString *const RNSVGTextLengthAdjustStrings[] = {@"spacing", @"spacingAndGlyphs", nil}; 158 159 NSString *RNSVGTextLengthAdjustToString(enum RNSVGTextLengthAdjust fw); 160 161 enum RNSVGTextLengthAdjust RNSVGTextLengthAdjustFromString(NSString *s); 162 163 typedef NS_ENUM(NSInteger, RNSVGTextPathMethod) { 164 RNSVGTextPathMethodAlign, 165 RNSVGTextPathMethodStretch, 166 RNSVGTextPathMethodDEFAULT = RNSVGTextPathMethodAlign, 167 }; 168 169 static NSString *const RNSVGTextPathMethodStrings[] = {@"align", @"stretch", nil}; 170 171 NSString *RNSVGTextPathMethodToString(enum RNSVGTextPathMethod fw); 172 173 enum RNSVGTextPathMethod RNSVGTextPathMethodFromString(NSString *s); 174 175 typedef NS_ENUM(NSInteger, RNSVGTextPathMidLine) { 176 RNSVGTextPathMidLineSharp, 177 RNSVGTextPathMidLineSmooth, 178 RNSVGTextPathMidLineDEFAULT = RNSVGTextPathMidLineSharp, 179 }; 180 181 static NSString *const RNSVGTextPathMidLineStrings[] = {@"sharp", @"smooth", nil}; 182 183 NSString *RNSVGTextPathMidLineToString(enum RNSVGTextPathMidLine fw); 184 185 enum RNSVGTextPathMidLine RNSVGTextPathMidLineFromString(NSString *s); 186 187 typedef NS_ENUM(NSInteger, RNSVGTextPathSide) { 188 RNSVGTextPathSideLeft, 189 RNSVGTextPathSideRight, 190 RNSVGTextPathSideDEFAULT = RNSVGTextPathSideLeft, 191 }; 192 193 static NSString *const RNSVGTextPathSideStrings[] = {@"left", @"right", nil}; 194 195 NSString *RNSVGTextPathSideToString(enum RNSVGTextPathSide fw); 196 197 enum RNSVGTextPathSide RNSVGTextPathSideFromString(NSString *s); 198 199 typedef NS_ENUM(NSInteger, RNSVGTextPathSpacing) { 200 RNSVGTextPathSpacingAutoSpacing, 201 RNSVGTextPathSpacingExact, 202 RNSVGTextPathSpacingDEFAULT = RNSVGTextPathSpacingAutoSpacing, 203 }; 204 205 static NSString *const RNSVGTextPathSpacingStrings[] = {@"auto", @"exact", nil}; 206 207 NSString *RNSVGTextPathSpacingToString(enum RNSVGTextPathSpacing fw); 208 209 enum RNSVGTextPathSpacing RNSVGTextPathSpacingFromString(NSString *s); 210 211 #endif 212