257 references to DirectionClass
PresentationCore (257)
MS\Internal\TextFormatting\Bidi.cs (225)
74
CharProperty = new byte[6, (int)
DirectionClass
.ClassMax - 1]
85
ClassToState = new StateMachineState[(int)
DirectionClass
.ClassMax]
116
FastPathClass = new byte[(int)
DirectionClass
.ClassMax]
493
ref
DirectionClass
strongClass,
494
ref
DirectionClass
numberClass)
497
DirectionClass
currentClass;
515
if (currentClass ==
DirectionClass
.ParagraphSeparator)
522
if (numberClass ==
DirectionClass
.ClassInvalid )
527
if (currentClass !=
DirectionClass
.EuropeanNumber)
551
NumberClass =
DirectionClass
.Left;
552
StrongCharClass =
DirectionClass
.Left;
561
public virtual
DirectionClass
LastStrongClass
570
public virtual
DirectionClass
LastNumberClass
610
protected
DirectionClass
NumberClass;
614
protected
DirectionClass
StrongCharClass;
640
ref
DirectionClass
strongClass)
642
DirectionClass
currentClass =
DirectionClass
.ClassInvalid;
658
if (CharProperty[0, (int) currentClass]==1 || currentClass ==
DirectionClass
.ParagraphSeparator)
674
IList<
DirectionClass
> characterClass, // [IN / OUT]
677
DirectionClass
startClass, // [IN]
678
DirectionClass
endClass, // [IN]
682
DirectionClass
startType;
683
DirectionClass
endType;
684
DirectionClass
resolutionType;
693
Debug.Assert(CharProperty[1, (int) startClass]==1 || (startClass ==
DirectionClass
.ArabicLetter),
698
startType = ((startClass ==
DirectionClass
.EuropeanNumber) ||
699
(startClass ==
DirectionClass
.ArabicNumber) ||
700
(startClass ==
DirectionClass
.ArabicLetter)) ?
DirectionClass
.Right : startClass;
702
endType = ((endClass ==
DirectionClass
.EuropeanNumber) ||
703
(endClass ==
DirectionClass
.ArabicNumber) ||
704
(endClass ==
DirectionClass
.ArabicLetter)) ?
DirectionClass
.Right : endClass;
712
resolutionType = Helper.IsOdd(runLevel) ?
DirectionClass
.Right :
DirectionClass
.Left;
729
IList<
DirectionClass
> characterClass, // [IN / OUT]
732
DirectionClass
newClass // [IN]
751
IList<
DirectionClass
> characterClass, // [IN / OUT]
754
DirectionClass
sor, // [IN]
755
DirectionClass
eor, // [IN]
765
DirectionClass
lastClass =
DirectionClass
.ClassInvalid;
766
DirectionClass
lastStrongClass =
DirectionClass
.ClassInvalid;
767
DirectionClass
lastNumericClass =
DirectionClass
.ClassInvalid;
768
DirectionClass
startingClass =
DirectionClass
.ClassInvalid;
769
DirectionClass
currentClass =
DirectionClass
.ClassInvalid;
784
if (stateIn.LastNumberClass !=
DirectionClass
.ClassInvalid)
797
startingClass =
DirectionClass
.ArabicLetter;
860
if (currentClass ==
DirectionClass
.ArabicLetter)
862
characterClass[counter + classIndex] =
DirectionClass
.Right;
872
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
879
if ((currentClass !=
DirectionClass
.ArabicNumber) ||
880
((currentClass ==
DirectionClass
.ArabicNumber) &&
881
(lastStrongClass ==
DirectionClass
.Right)))
886
if ((currentClass ==
DirectionClass
.ArabicNumber) &&
887
(lastStrongClass ==
DirectionClass
.Left))
910
if (currentClass ==
DirectionClass
.ArabicLetter)
912
characterClass[counter + classIndex] =
DirectionClass
.Right;
918
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
924
if ((currentClass !=
DirectionClass
.ArabicNumber) ||
925
((currentClass ==
DirectionClass
.ArabicNumber) &&
926
(lastStrongClass ==
DirectionClass
.Right)))
931
if ((currentClass ==
DirectionClass
.ArabicNumber) &&
932
(lastStrongClass ==
DirectionClass
.Left))
956
if (currentClass ==
DirectionClass
.ArabicLetter)
959
characterClass[counter + classIndex] =
DirectionClass
.Right;
962
if (((lastStrongClass ==
DirectionClass
.ArabicLetter) || previousClassIsArabic) &&
963
((currentClass ==
DirectionClass
.EuropeanNumber && (flags & Flags.OverrideEuropeanNumberResolution) == 0) ||
964
(currentClass ==
DirectionClass
.ArabicNumber)))
967
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
973
if (characterClass[i + classIndex] !=
DirectionClass
.CommonSeparator &&
974
characterClass[i + classIndex] !=
DirectionClass
.BoundaryNeutral)
980
if (characterClass[i + classIndex] ==
DirectionClass
.CommonSeparator )
997
else if ((lastStrongClass ==
DirectionClass
.Left) &&
998
(currentClass ==
DirectionClass
.EuropeanNumber))
1001
characterClass[counter + classIndex] =
DirectionClass
.Left;
1011
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1018
if ((currentClass !=
DirectionClass
.ArabicNumber) ||
1019
((currentClass ==
DirectionClass
.ArabicNumber) &&
1020
(lastStrongClass ==
DirectionClass
.Right)))
1022
if (!(((lastStrongClass ==
DirectionClass
.Left) ||
1023
(lastStrongClass ==
DirectionClass
.ArabicLetter)) &&
1024
(currentClass ==
DirectionClass
.EuropeanNumber)))
1030
if ((currentClass ==
DirectionClass
.ArabicNumber) &&
1031
(lastStrongClass ==
DirectionClass
.Left))
1042
if (characterClass[counter + classIndex] ==
DirectionClass
.ArabicNumber)
1044
currentClass =
DirectionClass
.ArabicNumber;
1055
if (currentClass ==
DirectionClass
.ArabicLetter)
1057
characterClass[counter + classIndex] =
DirectionClass
.Right;
1063
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1069
if ((currentClass !=
DirectionClass
.ArabicNumber) ||
1070
((currentClass ==
DirectionClass
.ArabicNumber) &&
1071
(lastStrongClass ==
DirectionClass
.Right)))
1076
if ((currentClass ==
DirectionClass
.ArabicNumber) &&
1077
(lastStrongClass ==
DirectionClass
.Left))
1095
((lastStrongClass ==
DirectionClass
.ArabicLetter) ||
1100
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1101
currentClass =
DirectionClass
.ArabicNumber;
1103
else if (lastStrongClass ==
DirectionClass
.Left)
1106
characterClass[counter + classIndex] =
DirectionClass
.Left;
1112
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1163
lastClass =
DirectionClass
.GenericNeutral;
1179
lastClass =
DirectionClass
.GenericNeutral;
1206
lastClass =
DirectionClass
.GenericNeutral;
1214
Debug.Assert(lastClass ==
DirectionClass
.EuropeanTerminator,
1242
if (!((lastStrongClass ==
DirectionClass
.ArabicLetter) || previousClassIsArabic))
1244
if (lastStrongClass ==
DirectionClass
.Left)
1246
characterClass[counter + classIndex] =
DirectionClass
.Left;
1250
characterClass[counter + classIndex] =
DirectionClass
.EuropeanNumber;
1260
lastClass =
DirectionClass
.EuropeanNumber;
1266
(characterClass[counter + 1 + classIndex] ==
DirectionClass
.EuropeanSeparator||
1267
characterClass[counter + 1 + classIndex] ==
DirectionClass
.CommonSeparator))
1269
characterClass[counter + 1 + classIndex] =
DirectionClass
.GenericNeutral;
1299
if ((lastStrongClass ==
DirectionClass
.ArabicLetter) ||
1304
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1307
else if (lastStrongClass ==
DirectionClass
.Left)
1309
characterClass[counter + classIndex] =
DirectionClass
.Left;
1331
if (lastStrongClass ==
DirectionClass
.Left)
1333
characterClass[counter + classIndex] =
DirectionClass
.Left;
1343
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1359
(lastStrongClass ==
DirectionClass
.ArabicLetter || previousClassIsArabic)
1363
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1364
currentClass =
DirectionClass
.ArabicNumber;
1366
else if (lastStrongClass ==
DirectionClass
.Left)
1368
characterClass[counter + classIndex] =
DirectionClass
.Left;
1378
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1385
if ( (currentClass ==
DirectionClass
.ArabicNumber) &&
1386
(lastStrongClass ==
DirectionClass
.Left))
1407
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1424
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1439
if ((lastStrongClass ==
DirectionClass
.ArabicLetter) ||
1445
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1446
currentClass =
DirectionClass
.ArabicNumber;
1454
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1463
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1468
else if (lastStrongClass ==
DirectionClass
.Left)
1470
characterClass[counter + classIndex] =
DirectionClass
.Left;
1482
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1493
DirectionClass
.EuropeanNumber);
1500
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1519
if ((lastStrongClass ==
DirectionClass
.ArabicLetter))
1521
if (lastClass ==
DirectionClass
.EuropeanNumber)
1528
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1533
characterClass[counter + classIndex] =
DirectionClass
.EuropeanNumber;
1536
else if (lastClass !=
DirectionClass
.ArabicNumber)
1539
characterClass[counter + classIndex] =
DirectionClass
.Right;
1544
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1550
|| lastClass ==
DirectionClass
.ArabicNumber ?
1551
DirectionClass
.ArabicNumber :
1552
lastClass==
DirectionClass
.EuropeanNumber &&
1553
lastStrongClass !=
DirectionClass
.Left
1554
?
DirectionClass
.EuropeanNumber : lastStrongClass;
1642
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1651
IList<
DirectionClass
> characterClass, // [IN / OUT]
1683
DirectionClass
directionClass;
1686
if (directionClass ==
DirectionClass
.ParagraphSeparator ||
1687
directionClass ==
DirectionClass
.SegmentSeparator)
1723
DirectionClass
[] characterClass = new
DirectionClass
[cchText];
1735
new PartialArray<
DirectionClass
>(characterClass),
1748
IList<
DirectionClass
> characterClass, // [IN/OUT] direction class of each char
1752
DirectionClass
tempClass;
1864
if (
DirectionClass
.ParagraphSeparator != Classification.CharAttributeOf((int) Classification.GetUnicodeClass(codePoint)).BiDi)
1889
case
DirectionClass
.Left:
1890
case
DirectionClass
.Right:
1891
case
DirectionClass
.ArabicNumber:
1892
case
DirectionClass
.ArabicLetter:
1897
case
DirectionClass
.EuropeanNumber:
1934
DirectionClass
firstStrong =
DirectionClass
.ClassInvalid;
1938
if (firstStrong !=
DirectionClass
.Left)
1967
DirectionClass
lastStrongClass;
1977
lastStrongClass =
DirectionClass
.Right;
1987
lastStrongClass =
DirectionClass
.Left;
2004
DirectionClass
hiddenCharClass =
DirectionClass
.GenericNeutral;
2022
if ( hiddenCharClass ==
DirectionClass
.EuropeanNumber
2054
if (tempClass !=
DirectionClass
.EuropeanSeparator && tempClass !=
DirectionClass
.CommonSeparator)
2055
characterClass[counter] =
DirectionClass
.GenericNeutral;
2162
DirectionClass
currentClass;
2175
case
DirectionClass
.ParagraphSeparator:
2190
goto case
DirectionClass
.OtherNeutral;
2196
case
DirectionClass
.SegmentSeparator:
2197
case
DirectionClass
.WhiteSpace:
2198
case
DirectionClass
.OtherNeutral:
2199
characterClass[counter] =
DirectionClass
.GenericNeutral;
2201
if (counter>0 && characterClass[counter-1] ==
DirectionClass
.BoundaryNeutral)
2212
case
DirectionClass
.LeftToRightEmbedding:
2213
case
DirectionClass
.RightToLeftEmbedding:
2214
characterClass[counter] =
DirectionClass
.BoundaryNeutral;
2222
if(!levelsStack.Push(currentClass ==
DirectionClass
.LeftToRightEmbedding ? true : false))
2241
case
DirectionClass
.LeftToRightOverride:
2242
case
DirectionClass
.RightToLeftOverride:
2243
characterClass[counter] =
DirectionClass
.BoundaryNeutral;
2248
if(!levelsStack.Push(currentClass ==
DirectionClass
.LeftToRightOverride ? true : false))
2258
overrideClass = (currentClass ==
DirectionClass
.LeftToRightOverride) ?
2271
case
DirectionClass
.PopDirectionalFormat:
2272
characterClass[counter] =
DirectionClass
.BoundaryNeutral;
2316
if ( currentClass ==
DirectionClass
.EuropeanNumber
2322
Invariant.Assert(characterClass[counter] ==
DirectionClass
.ArabicNumber || characterClass[counter] ==
DirectionClass
.EuropeanNumber);
2333
DirectionClass
.Left :
DirectionClass
.Right;
2336
if (counter>0 && characterClass[counter-1]==
DirectionClass
.BoundaryNeutral)
2383
DirectionClass
sor;
2384
DirectionClass
eor;
2414
DirectionClass
.Right :
DirectionClass
.Left;
2419
DirectionClass
.Right :
DirectionClass
.Left;
2429
DirectionClass
.Right :
DirectionClass
.Left;
2438
characterClass[runLimits[runNumber]] ==
DirectionClass
.BoundaryNeutral)
2444
DirectionClass
.Right :
DirectionClass
.Left;
2501
state.LastStrongClass =
DirectionClass
.Right;
2502
state.LastNumberClass =
DirectionClass
.Right;
2507
state.LastStrongClass =
DirectionClass
.Left;
2508
state.LastNumberClass =
DirectionClass
.Left;
MS\Internal\TextFormatting\SimpleTextLine.cs (1)
1955
return Classification.CharAttributeOf(charClass).BiDi ==
DirectionClass
.WhiteSpace;
MS\Internal\TextFormatting\TextStore.cs (30)
905
DirectionClass
[] directionClasses = new
DirectionClass
[stringLength];
932
DirectionClass
europeanNumberOverride = _bidiState.GetEuropeanNumberClassOverride(culture);
979
new PartialArray<
DirectionClass
>(directionClasses, resolvedLength, ich - resolvedLength),
2525
NumberClass =
DirectionClass
.ClassInvalid;
2526
StrongCharClass =
DirectionClass
.ClassInvalid;
2561
LastStrongClass =
DirectionClass
.Left;
2562
LastNumberClass =
DirectionClass
.Left;
2566
LastStrongClass =
DirectionClass
.ArabicLetter;
2567
LastNumberClass =
DirectionClass
.ArabicNumber;
2580
public override
DirectionClass
LastNumberClass
2584
if (this.NumberClass ==
DirectionClass
.ClassInvalid )
2599
public override
DirectionClass
LastStrongClass
2603
if (this.StrongCharClass ==
DirectionClass
.ClassInvalid)
2623
DirectionClass
strongClass =
DirectionClass
.ClassInvalid;
2624
DirectionClass
numberClass =
DirectionClass
.ClassInvalid;
2650
if (strongClass !=
DirectionClass
.ClassInvalid)
2654
if (this.NumberClass ==
DirectionClass
.ClassInvalid)
2656
if (numberClass ==
DirectionClass
.EuropeanNumber)
2681
if(strongClass ==
DirectionClass
.ClassInvalid)
2683
this.StrongCharClass = ((CurrentLevel & 1) == 0) ?
DirectionClass
.Left :
DirectionClass
.ArabicLetter;
2686
if(numberClass ==
DirectionClass
.ClassInvalid)
2688
this.NumberClass = ((CurrentLevel & 1) == 0) ?
DirectionClass
.Left :
DirectionClass
.ArabicNumber;
2734
internal
DirectionClass
GetEuropeanNumberClassOverride(CultureInfo cultureInfo)
2743
return
DirectionClass
.ArabicNumber;
2746
return
DirectionClass
.EuropeanNumber;
MS\Internal\UnicodeClasses.cs (1)
183
internal
DirectionClass
BiDi;