268
328
Dictionary = dictionary;
331
internal static CTFontFeatureSelectors Create (FontFeatureGroup featureGroup, NSDictionary dictionary)
333
switch (featureGroup) {
334
case FontFeatureGroup.AllTypographicFeatures:
335
return new CTFontFeatureAllTypographicFeatures (dictionary);
336
case FontFeatureGroup.Ligatures:
337
return new CTFontFeatureLigatures (dictionary);
338
case FontFeatureGroup.CursiveConnection:
339
return new CTFontFeatureCursiveConnection (dictionary);
340
#pragma warning disable 618
341
case FontFeatureGroup.LetterCase:
342
return new CTFontFeatureLetterCase (dictionary);
343
#pragma warning restore 618
344
case FontFeatureGroup.VerticalSubstitution:
345
return new CTFontFeatureVerticalSubstitutionConnection (dictionary);
346
case FontFeatureGroup.LinguisticRearrangement:
347
return new CTFontFeatureLinguisticRearrangementConnection (dictionary);
348
case FontFeatureGroup.NumberSpacing:
349
return new CTFontFeatureNumberSpacing (dictionary);
350
case FontFeatureGroup.SmartSwash:
351
return new CTFontFeatureSmartSwash (dictionary);
352
case FontFeatureGroup.Diacritics:
353
return new CTFontFeatureDiacritics (dictionary);
354
case FontFeatureGroup.VerticalPosition:
355
return new CTFontFeatureVerticalPosition (dictionary);
356
case FontFeatureGroup.Fractions:
357
return new CTFontFeatureFractions (dictionary);
358
case FontFeatureGroup.OverlappingCharacters:
359
return new CTFontFeatureOverlappingCharacters (dictionary);
360
case FontFeatureGroup.TypographicExtras:
361
return new CTFontFeatureTypographicExtras (dictionary);
362
case FontFeatureGroup.MathematicalExtras:
363
return new CTFontFeatureMathematicalExtras (dictionary);
364
case FontFeatureGroup.OrnamentSets:
365
return new CTFontFeatureOrnamentSets (dictionary);
366
case FontFeatureGroup.CharacterAlternatives:
367
return new CTFontFeatureCharacterAlternatives (dictionary);
368
case FontFeatureGroup.DesignComplexity:
369
return new CTFontFeatureDesignComplexity (dictionary);
370
case FontFeatureGroup.StyleOptions:
371
return new CTFontFeatureStyleOptions (dictionary);
372
case FontFeatureGroup.CharacterShape:
373
return new CTFontFeatureCharacterShape (dictionary);
374
case FontFeatureGroup.NumberCase:
375
return new CTFontFeatureNumberCase (dictionary);
376
case FontFeatureGroup.TextSpacing:
377
return new CTFontFeatureTextSpacing (dictionary);
378
case FontFeatureGroup.Transliteration:
379
return new CTFontFeatureTransliteration (dictionary);
380
case FontFeatureGroup.Annotation:
381
return new CTFontFeatureAnnotation (dictionary);
382
case FontFeatureGroup.KanaSpacing:
383
return new CTFontFeatureKanaSpacing (dictionary);
384
case FontFeatureGroup.IdeographicSpacing:
385
return new CTFontFeatureIdeographicSpacing (dictionary);
386
case FontFeatureGroup.UnicodeDecomposition:
387
return new CTFontFeatureUnicodeDecomposition (dictionary);
388
case FontFeatureGroup.RubyKana:
389
return new CTFontFeatureRubyKana (dictionary);
390
case FontFeatureGroup.CJKSymbolAlternatives:
391
return new CTFontFeatureCJKSymbolAlternatives (dictionary);
392
case FontFeatureGroup.IdeographicAlternatives:
393
return new CTFontFeatureIdeographicAlternatives (dictionary);
394
case FontFeatureGroup.CJKVerticalRomanPlacement:
395
return new CTFontFeatureCJKVerticalRomanPlacement (dictionary);
396
case FontFeatureGroup.ItalicCJKRoman:
397
return new CTFontFeatureItalicCJKRoman (dictionary);
398
case FontFeatureGroup.CaseSensitiveLayout:
399
return new CTFontFeatureCaseSensitiveLayout (dictionary);
400
case FontFeatureGroup.AlternateKana:
401
return new CTFontFeatureAlternateKana (dictionary);
402
case FontFeatureGroup.StylisticAlternatives:
403
return new CTFontFeatureStylisticAlternatives (dictionary);
404
case FontFeatureGroup.ContextualAlternates:
405
return new CTFontFeatureContextualAlternates (dictionary);
406
case FontFeatureGroup.LowerCase:
407
return new CTFontFeatureLowerCase (dictionary);
408
case FontFeatureGroup.UpperCase:
409
return new CTFontFeatureUpperCase (dictionary);
410
case FontFeatureGroup.CJKRomanSpacing:
411
return new CTFontFeatureCJKRomanSpacing (dictionary);
413
return new CTFontFeatureSelectors (dictionary);
271
417
public NSDictionary Dictionary {get; private set;}
273
// TODO: what kind of number?
419
[Advice ("Use one of descendant classes")]
274
420
public NSNumber Identifier {
275
421
get {return (NSNumber) Dictionary [CTFontFeatureSelectorKey.Identifier];}
276
422
set {Adapter.SetValue (Dictionary, CTFontFeatureSelectorKey.Identifier, value);}
425
protected int FeatureWeak {
427
return (int) (NSNumber) Dictionary [CTFontFeatureSelectorKey.Identifier];
279
431
public string Name {
280
432
get {return Adapter.GetStringValue (Dictionary, CTFontFeatureSelectorKey.Name);}
281
433
set {Adapter.SetValue (Dictionary, CTFontFeatureSelectorKey.Name, value);}
461
public class CTFontFeatureAllTypographicFeatures : CTFontFeatureSelectors
465
AllTypeFeaturesOn = 0,
466
AllTypeFeaturesOff = 1
469
public CTFontFeatureAllTypographicFeatures (NSDictionary dictionary)
474
public Selector Feature {
476
return (Selector) FeatureWeak;
481
public class CTFontFeatureLigatures : CTFontFeatureSelectors
485
RequiredLigaturesOn = 0,
486
RequiredLigaturesOff = 1,
487
CommonLigaturesOn = 2,
488
CommonLigaturesOff = 3,
490
RareLigaturesOff = 5,
494
RebusPicturesOff = 9,
495
DiphthongLigaturesOn = 10,
496
DiphthongLigaturesOff = 11,
497
SquaredLigaturesOn = 12,
498
SquaredLigaturesOff = 13,
499
AbbrevSquaredLigaturesOn = 14,
500
AbbrevSquaredLigaturesOff = 15,
501
SymbolLigaturesOn = 16,
502
SymbolLigaturesOff = 17,
503
ContextualLigaturesOn = 18,
504
ContextualLigaturesOff = 19,
505
HistoricalLigaturesOn = 20,
506
HistoricalLigaturesOff = 21
509
public CTFontFeatureLigatures (NSDictionary dictionary)
514
public Selector Feature {
516
return (Selector) FeatureWeak;
521
[Obsolete ("Deprecated")]
522
public class CTFontFeatureLetterCase : CTFontFeatureSelectors
526
UpperAndLowerCase = 0,
531
InitialCapsAndSmallCaps = 5
534
public CTFontFeatureLetterCase (NSDictionary dictionary)
539
public Selector Feature {
541
return (Selector) Feature;
546
public class CTFontFeatureCursiveConnection : CTFontFeatureSelectors
551
PartiallyConnected = 1,
555
public CTFontFeatureCursiveConnection (NSDictionary dictionary)
560
public Selector Feature {
562
return (Selector) Feature;
567
public class CTFontFeatureVerticalSubstitutionConnection : CTFontFeatureSelectors
571
SubstituteVerticalFormsOn = 0,
572
SubstituteVerticalFormsOff = 1
575
public CTFontFeatureVerticalSubstitutionConnection (NSDictionary dictionary)
580
public Selector Feature {
582
return (Selector) Feature;
587
public class CTFontFeatureLinguisticRearrangementConnection : CTFontFeatureSelectors
591
LinguisticRearrangementOn = 0,
592
LinguisticRearrangementOff = 1
595
public CTFontFeatureLinguisticRearrangementConnection (NSDictionary dictionary)
600
public Selector Feature {
602
return (Selector) Feature;
607
public class CTFontFeatureNumberSpacing : CTFontFeatureSelectors
611
MonospacedNumbers = 0,
612
ProportionalNumbers = 1,
613
ThirdWidthNumbers = 2,
614
QuarterWidthNumbers = 3
617
public CTFontFeatureNumberSpacing (NSDictionary dictionary)
622
public Selector Feature {
624
return (Selector) Feature;
629
public class CTFontFeatureSmartSwash : CTFontFeatureSelectors
633
WordInitialSwashesOn = 0,
634
WordInitialSwashesOff = 1,
635
WordFinalSwashesOn = 2,
636
WordFinalSwashesOff = 3,
637
LineInitialSwashesOn = 4,
638
LineInitialSwashesOff = 5,
639
LineFinalSwashesOn = 6,
640
LineFinalSwashesOff = 7,
641
NonFinalSwashesOn = 8,
642
NonFinalSwashesOff = 9
645
public CTFontFeatureSmartSwash (NSDictionary dictionary)
650
public Selector Feature {
652
return (Selector) Feature;
657
public class CTFontFeatureDiacritics : CTFontFeatureSelectors
663
DecomposeDiacritics = 2
666
public CTFontFeatureDiacritics (NSDictionary dictionary)
671
public Selector Feature {
673
return (Selector) FeatureWeak;
678
public class CTFontFeatureVerticalPosition : CTFontFeatureSelectors
686
ScientificInferiors = 4
689
public CTFontFeatureVerticalPosition (NSDictionary dictionary)
694
public Selector Feature {
696
return (Selector) FeatureWeak;
701
public class CTFontFeatureFractions : CTFontFeatureSelectors
706
VerticalFractions = 1,
707
DiagonalFractions = 2
710
public CTFontFeatureFractions (NSDictionary dictionary)
715
public Selector Feature {
717
return (Selector) FeatureWeak;
722
public class CTFontFeatureOverlappingCharacters : CTFontFeatureSelectors
726
PreventOverlapOn = 0,
727
PreventOverlapOff = 1
730
public CTFontFeatureOverlappingCharacters (NSDictionary dictionary)
735
public Selector Feature {
737
return (Selector) FeatureWeak;
742
public class CTFontFeatureTypographicExtras : CTFontFeatureSelectors
746
HyphensToEmDashOn = 0,
747
HyphensToEmDashOff = 1,
748
HyphenToEnDashOn = 2,
749
HyphenToEnDashOff = 3,
752
FormInterrobangOn = 6,
753
FormInterrobangOff = 7,
756
PeriodsToEllipsisOn = 10,
757
PeriodsToEllipsisOff = 11
760
public CTFontFeatureTypographicExtras (NSDictionary dictionary)
765
public Selector Feature {
767
return (Selector) FeatureWeak;
772
public class CTFontFeatureMathematicalExtras : CTFontFeatureSelectors
777
HyphenToMinusOff = 1,
778
AsteriskToMultiplyOn = 2,
779
AsteriskToMultiplyOff = 3,
781
SlashToDivideOff = 5,
782
InequalityLigaturesOn = 6,
783
InequalityLigaturesOff = 7,
786
MathematicalGreekOn = 10,
787
MathematicalGreekOff = 11
790
public CTFontFeatureMathematicalExtras (NSDictionary dictionary)
795
public Selector Feature {
797
return (Selector) FeatureWeak;
802
public class CTFontFeatureOrnamentSets : CTFontFeatureSelectors
810
DecorativeBorders = 4,
811
InternationalSymbols = 5,
815
public CTFontFeatureOrnamentSets (NSDictionary dictionary)
820
public Selector Feature {
822
return (Selector) FeatureWeak;
827
public class CTFontFeatureCharacterAlternatives : CTFontFeatureSelectors
834
public CTFontFeatureCharacterAlternatives (NSDictionary dictionary)
839
public Selector Feature {
841
return (Selector) FeatureWeak;
846
public class CTFontFeatureDesignComplexity : CTFontFeatureSelectors
857
public CTFontFeatureDesignComplexity (NSDictionary dictionary)
862
public Selector Feature {
864
return (Selector) FeatureWeak;
869
public class CTFontFeatureStyleOptions : CTFontFeatureSelectors
881
public CTFontFeatureStyleOptions (NSDictionary dictionary)
886
public Selector Feature {
888
return (Selector) FeatureWeak;
893
public class CTFontFeatureCharacterShape : CTFontFeatureSelectors
897
TraditionalCharacters = 0,
898
SimplifiedCharacters = 1,
899
JIS1978Characters = 2,
900
JIS1983Characters = 3,
901
JIS1990Characters = 4,
902
TraditionalAltOne = 5,
903
TraditionalAltTwo = 6,
904
TraditionalAltThree = 7,
905
TraditionalAltFour = 8,
906
TraditionalAltFive = 9,
907
ExpertCharacters = 10,
908
JIS2004Characters = 11,
911
TraditionalNamesCharacters = 14
914
public CTFontFeatureCharacterShape (NSDictionary dictionary)
919
public Selector Feature {
921
return (Selector) FeatureWeak;
926
public class CTFontFeatureNumberCase : CTFontFeatureSelectors
930
LowerCaseNumbers = 0,
934
public CTFontFeatureNumberCase (NSDictionary dictionary)
939
public Selector Feature {
941
return (Selector) FeatureWeak;
946
public class CTFontFeatureTextSpacing : CTFontFeatureSelectors
950
ProportionalText = 0,
954
QuarterWidthText = 4,
955
AltProportionalText = 5,
959
public CTFontFeatureTextSpacing (NSDictionary dictionary)
964
public Selector Feature {
966
return (Selector) FeatureWeak;
971
public class CTFontFeatureTransliteration : CTFontFeatureSelectors
975
NoTransliteration = 0,
977
HiraganaToKatakana = 2,
978
KatakanaToHiragana = 3,
979
KanaToRomanization = 4,
980
RomanizationToHiragana = 5,
981
RomanizationToKatakana = 6,
982
HanjaToHangulAltOne = 7,
983
HanjaToHangulAltTwo = 8,
984
HanjaToHangulAltThree = 9
987
public CTFontFeatureTransliteration (NSDictionary dictionary)
992
public Selector Feature {
994
return (Selector) FeatureWeak;
999
public class CTFontFeatureAnnotation : CTFontFeatureSelectors
1001
public enum Selector
1005
RoundedBoxAnnotation = 2,
1006
CircleAnnotation = 3,
1007
InvertedCircleAnnotation = 4,
1008
ParenthesisAnnotation = 5,
1009
PeriodAnnotation = 6,
1010
RomanNumeralAnnotation = 7,
1011
DiamondAnnotation = 8,
1012
InvertedBoxAnnotation = 9,
1013
InvertedRoundedBoxAnnotation = 10
1016
public CTFontFeatureAnnotation (NSDictionary dictionary)
1021
public Selector Feature {
1023
return (Selector) FeatureWeak;
1028
public class CTFontFeatureKanaSpacing : CTFontFeatureSelectors
1030
public enum Selector
1033
ProportionalKana = 1
1036
public CTFontFeatureKanaSpacing (NSDictionary dictionary)
1041
public Selector Feature {
1043
return (Selector) FeatureWeak;
1048
public class CTFontFeatureIdeographicSpacing : CTFontFeatureSelectors
1050
public enum Selector
1052
FullWidthIdeographs = 0,
1053
ProportionalIdeographs = 1,
1054
HalfWidthIdeographs = 2
1057
public CTFontFeatureIdeographicSpacing (NSDictionary dictionary)
1062
public Selector Feature {
1064
return (Selector) FeatureWeak;
1069
public class CTFontFeatureUnicodeDecomposition : CTFontFeatureSelectors
1071
public enum Selector
1073
CanonicalCompositionOn = 0,
1074
CanonicalCompositionOff = 1,
1075
CompatibilityCompositionOn = 2,
1076
CompatibilityCompositionOff = 3,
1077
TranscodingCompositionOn = 4,
1078
TranscodingCompositionOff = 5
1081
public CTFontFeatureUnicodeDecomposition (NSDictionary dictionary)
1086
public Selector Feature {
1088
return (Selector) FeatureWeak;
1093
public class CTFontFeatureRubyKana : CTFontFeatureSelectors
1095
public enum Selector
1097
[Obsolete ("Deprecated. Use RubyKanaOn instead")]
1099
[Obsolete ("Deprecated. Use RubyKanaOff instead")]
1105
public CTFontFeatureRubyKana (NSDictionary dictionary)
1110
public Selector Feature {
1112
return (Selector) FeatureWeak;
1117
public class CTFontFeatureCJKSymbolAlternatives : CTFontFeatureSelectors
1119
public enum Selector
1121
NoCJKSymbolAlternatives = 0,
1122
CJKSymbolAltOne = 1,
1123
CJKSymbolAltTwo = 2,
1124
CJKSymbolAltThree = 3,
1125
CJKSymbolAltFour = 4,
1126
CJKSymbolAltFive = 5
1129
public CTFontFeatureCJKSymbolAlternatives (NSDictionary dictionary)
1134
public Selector Feature {
1136
return (Selector) FeatureWeak;
1141
public class CTFontFeatureIdeographicAlternatives : CTFontFeatureSelectors
1143
public enum Selector
1145
NoIdeographicAlternatives = 0,
1146
IdeographicAltOne = 1,
1147
IdeographicAltTwo = 2,
1148
IdeographicAltThree = 3,
1149
IdeographicAltFour = 4,
1150
IdeographicAltFive = 5
1153
public CTFontFeatureIdeographicAlternatives (NSDictionary dictionary)
1158
public Selector Feature {
1160
return (Selector) FeatureWeak;
1165
public class CTFontFeatureCJKVerticalRomanPlacement : CTFontFeatureSelectors
1167
public enum Selector
1169
CJKVerticalRomanCentered = 0,
1170
CJKVerticalRomanHBaseline = 1
1173
public CTFontFeatureCJKVerticalRomanPlacement (NSDictionary dictionary)
1178
public Selector Feature {
1180
return (Selector) FeatureWeak;
1185
public class CTFontFeatureItalicCJKRoman : CTFontFeatureSelectors
1187
public enum Selector
1189
[Obsolete ("Deprecated. Use CJKItalicRomanOff instead")]
1190
NoCJKItalicRoman = 0,
1191
[Obsolete ("Deprecated. Use CJKItalicRomanOn instead")]
1193
CJKItalicRomanOn = 2,
1194
CJKItalicRomanOff = 3
1197
public CTFontFeatureItalicCJKRoman (NSDictionary dictionary)
1202
public Selector Feature {
1204
return (Selector) FeatureWeak;
1209
public class CTFontFeatureCaseSensitiveLayout : CTFontFeatureSelectors
1211
public enum Selector
1213
CaseSensitiveLayoutOn = 0,
1214
CaseSensitiveLayoutOff = 1,
1215
CaseSensitiveSpacingOn = 2,
1216
CaseSensitiveSpacingOff = 3
1219
public CTFontFeatureCaseSensitiveLayout (NSDictionary dictionary)
1224
public Selector Feature {
1226
return (Selector) FeatureWeak;
1231
public class CTFontFeatureAlternateKana : CTFontFeatureSelectors
1233
public enum Selector
1235
AlternateHorizKanaOn = 0,
1236
AlternateHorizKanaOff = 1,
1237
AlternateVertKanaOn = 2,
1238
AlternateVertKanaOff = 3
1241
public CTFontFeatureAlternateKana (NSDictionary dictionary)
1246
public Selector Feature {
1248
return (Selector) FeatureWeak;
1253
public class CTFontFeatureStylisticAlternatives : CTFontFeatureSelectors
1255
public enum Selector
1257
NoStylisticAlternates = 0,
1258
StylisticAltOneOn = 2,
1259
StylisticAltOneOff = 3,
1260
StylisticAltTwoOn = 4,
1261
StylisticAltTwoOff = 5,
1262
StylisticAltThreeOn = 6,
1263
StylisticAltThreeOff = 7,
1264
StylisticAltFourOn = 8,
1265
StylisticAltFourOff = 9,
1266
StylisticAltFiveOn = 10,
1267
StylisticAltFiveOff = 11,
1268
StylisticAltSixOn = 12,
1269
StylisticAltSixOff = 13,
1270
StylisticAltSevenOn = 14,
1271
StylisticAltSevenOff = 15,
1272
StylisticAltEightOn = 16,
1273
StylisticAltEightOff = 17,
1274
StylisticAltNineOn = 18,
1275
StylisticAltNineOff = 19,
1276
StylisticAltTenOn = 20,
1277
StylisticAltTenOff = 21,
1278
StylisticAltElevenOn = 22,
1279
StylisticAltElevenOff = 23,
1280
StylisticAltTwelveOn = 24,
1281
StylisticAltTwelveOff = 25,
1282
StylisticAltThirteenOn = 26,
1283
StylisticAltThirteenOff = 27,
1284
StylisticAltFourteenOn = 28,
1285
StylisticAltFourteenOff = 29,
1286
StylisticAltFifteenOn = 30,
1287
StylisticAltFifteenOff = 31,
1288
StylisticAltSixteenOn = 32,
1289
StylisticAltSixteenOff = 33,
1290
StylisticAltSeventeenOn = 34,
1291
StylisticAltSeventeenOff = 35,
1292
StylisticAltEighteenOn = 36,
1293
StylisticAltEighteenOff = 37,
1294
StylisticAltNineteenOn = 38,
1295
StylisticAltNineteenOff = 39,
1296
StylisticAltTwentyOn = 40,
1297
StylisticAltTwentyOff = 41
1300
public CTFontFeatureStylisticAlternatives (NSDictionary dictionary)
1305
public Selector Feature {
1307
return (Selector) FeatureWeak;
1312
public class CTFontFeatureContextualAlternates : CTFontFeatureSelectors
1314
public enum Selector
1316
ContextualAlternatesOn = 0,
1317
ContextualAlternatesOff = 1,
1318
SwashAlternatesOn = 2,
1319
SwashAlternatesOff = 3,
1320
ContextualSwashAlternatesOn = 4,
1321
ContextualSwashAlternatesOff = 5
1324
public CTFontFeatureContextualAlternates (NSDictionary dictionary)
1329
public Selector Feature {
1331
return (Selector) FeatureWeak;
1336
public class CTFontFeatureLowerCase : CTFontFeatureSelectors
1338
public enum Selector
1340
DefaultLowerCase = 0,
1341
LowerCaseSmallCaps = 1,
1342
LowerCasePetiteCaps = 2
1345
public CTFontFeatureLowerCase (NSDictionary dictionary)
1350
public Selector Feature {
1352
return (Selector) FeatureWeak;
1357
public class CTFontFeatureUpperCase : CTFontFeatureSelectors
1359
public enum Selector
1361
DefaultUpperCase = 0,
1362
UpperCaseSmallCaps = 1,
1363
UpperCasePetiteCaps = 2
1366
public CTFontFeatureUpperCase (NSDictionary dictionary)
1371
public Selector Feature {
1373
return (Selector) FeatureWeak;
1378
public class CTFontFeatureCJKRomanSpacing : CTFontFeatureSelectors
1380
public enum Selector
1382
HalfWidthCJKRoman = 0,
1383
ProportionalCJKRoman = 1,
1384
DefaultCJKRoman = 2,
1385
FullWidthCJKRoman = 3
1388
public CTFontFeatureCJKRomanSpacing (NSDictionary dictionary)
1393
public Selector Feature {
1395
return (Selector) FeatureWeak;
310
1401
public class CTFontFeatureSettings {
312
public CTFontFeatureSettings ()
313
: this (new NSMutableDictionary ())
1403
// It should be internal
317
1404
public CTFontFeatureSettings (NSDictionary dictionary)
319
1406
if (dictionary == null)