257 references to DirectionClass
PresentationCore (257)
MS\Internal\TextFormatting\Bidi.cs (225)
66
CharProperty = new byte[6, (int)
DirectionClass
.ClassMax - 1]
77
ClassToState = new StateMachineState[(int)
DirectionClass
.ClassMax]
108
FastPathClass = new byte[(int)
DirectionClass
.ClassMax]
485
ref
DirectionClass
strongClass,
486
ref
DirectionClass
numberClass)
489
DirectionClass
currentClass;
507
if (currentClass ==
DirectionClass
.ParagraphSeparator)
514
if (numberClass ==
DirectionClass
.ClassInvalid )
519
if (currentClass !=
DirectionClass
.EuropeanNumber)
543
NumberClass =
DirectionClass
.Left;
544
StrongCharClass =
DirectionClass
.Left;
553
public virtual
DirectionClass
LastStrongClass
562
public virtual
DirectionClass
LastNumberClass
602
protected
DirectionClass
NumberClass;
606
protected
DirectionClass
StrongCharClass;
632
ref
DirectionClass
strongClass)
634
DirectionClass
currentClass =
DirectionClass
.ClassInvalid;
650
if (CharProperty[0, (int) currentClass]==1 || currentClass ==
DirectionClass
.ParagraphSeparator)
666
IList<
DirectionClass
> characterClass, // [IN / OUT]
669
DirectionClass
startClass, // [IN]
670
DirectionClass
endClass, // [IN]
674
DirectionClass
startType;
675
DirectionClass
endType;
676
DirectionClass
resolutionType;
685
Debug.Assert(CharProperty[1, (int) startClass]==1 || (startClass ==
DirectionClass
.ArabicLetter),
690
startType = ((startClass ==
DirectionClass
.EuropeanNumber) ||
691
(startClass ==
DirectionClass
.ArabicNumber) ||
692
(startClass ==
DirectionClass
.ArabicLetter)) ?
DirectionClass
.Right : startClass;
694
endType = ((endClass ==
DirectionClass
.EuropeanNumber) ||
695
(endClass ==
DirectionClass
.ArabicNumber) ||
696
(endClass ==
DirectionClass
.ArabicLetter)) ?
DirectionClass
.Right : endClass;
704
resolutionType = Helper.IsOdd(runLevel) ?
DirectionClass
.Right :
DirectionClass
.Left;
721
IList<
DirectionClass
> characterClass, // [IN / OUT]
724
DirectionClass
newClass // [IN]
743
IList<
DirectionClass
> characterClass, // [IN / OUT]
746
DirectionClass
sor, // [IN]
747
DirectionClass
eor, // [IN]
757
DirectionClass
lastClass =
DirectionClass
.ClassInvalid;
758
DirectionClass
lastStrongClass =
DirectionClass
.ClassInvalid;
759
DirectionClass
lastNumericClass =
DirectionClass
.ClassInvalid;
760
DirectionClass
startingClass =
DirectionClass
.ClassInvalid;
761
DirectionClass
currentClass =
DirectionClass
.ClassInvalid;
776
if (stateIn.LastNumberClass !=
DirectionClass
.ClassInvalid)
789
startingClass =
DirectionClass
.ArabicLetter;
852
if (currentClass ==
DirectionClass
.ArabicLetter)
854
characterClass[counter + classIndex] =
DirectionClass
.Right;
864
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
871
if ((currentClass !=
DirectionClass
.ArabicNumber) ||
872
((currentClass ==
DirectionClass
.ArabicNumber) &&
873
(lastStrongClass ==
DirectionClass
.Right)))
878
if ((currentClass ==
DirectionClass
.ArabicNumber) &&
879
(lastStrongClass ==
DirectionClass
.Left))
902
if (currentClass ==
DirectionClass
.ArabicLetter)
904
characterClass[counter + classIndex] =
DirectionClass
.Right;
910
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
916
if ((currentClass !=
DirectionClass
.ArabicNumber) ||
917
((currentClass ==
DirectionClass
.ArabicNumber) &&
918
(lastStrongClass ==
DirectionClass
.Right)))
923
if ((currentClass ==
DirectionClass
.ArabicNumber) &&
924
(lastStrongClass ==
DirectionClass
.Left))
948
if (currentClass ==
DirectionClass
.ArabicLetter)
951
characterClass[counter + classIndex] =
DirectionClass
.Right;
954
if (((lastStrongClass ==
DirectionClass
.ArabicLetter) || previousClassIsArabic) &&
955
((currentClass ==
DirectionClass
.EuropeanNumber && (flags & Flags.OverrideEuropeanNumberResolution) == 0) ||
956
(currentClass ==
DirectionClass
.ArabicNumber)))
959
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
965
if (characterClass[i + classIndex] !=
DirectionClass
.CommonSeparator &&
966
characterClass[i + classIndex] !=
DirectionClass
.BoundaryNeutral)
972
if (characterClass[i + classIndex] ==
DirectionClass
.CommonSeparator )
989
else if ((lastStrongClass ==
DirectionClass
.Left) &&
990
(currentClass ==
DirectionClass
.EuropeanNumber))
993
characterClass[counter + classIndex] =
DirectionClass
.Left;
1003
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1010
if ((currentClass !=
DirectionClass
.ArabicNumber) ||
1011
((currentClass ==
DirectionClass
.ArabicNumber) &&
1012
(lastStrongClass ==
DirectionClass
.Right)))
1014
if (!(((lastStrongClass ==
DirectionClass
.Left) ||
1015
(lastStrongClass ==
DirectionClass
.ArabicLetter)) &&
1016
(currentClass ==
DirectionClass
.EuropeanNumber)))
1022
if ((currentClass ==
DirectionClass
.ArabicNumber) &&
1023
(lastStrongClass ==
DirectionClass
.Left))
1034
if (characterClass[counter + classIndex] ==
DirectionClass
.ArabicNumber)
1036
currentClass =
DirectionClass
.ArabicNumber;
1047
if (currentClass ==
DirectionClass
.ArabicLetter)
1049
characterClass[counter + classIndex] =
DirectionClass
.Right;
1055
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1061
if ((currentClass !=
DirectionClass
.ArabicNumber) ||
1062
((currentClass ==
DirectionClass
.ArabicNumber) &&
1063
(lastStrongClass ==
DirectionClass
.Right)))
1068
if ((currentClass ==
DirectionClass
.ArabicNumber) &&
1069
(lastStrongClass ==
DirectionClass
.Left))
1087
((lastStrongClass ==
DirectionClass
.ArabicLetter) ||
1092
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1093
currentClass =
DirectionClass
.ArabicNumber;
1095
else if (lastStrongClass ==
DirectionClass
.Left)
1098
characterClass[counter + classIndex] =
DirectionClass
.Left;
1104
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1155
lastClass =
DirectionClass
.GenericNeutral;
1171
lastClass =
DirectionClass
.GenericNeutral;
1198
lastClass =
DirectionClass
.GenericNeutral;
1206
Debug.Assert(lastClass ==
DirectionClass
.EuropeanTerminator,
1234
if (!((lastStrongClass ==
DirectionClass
.ArabicLetter) || previousClassIsArabic))
1236
if (lastStrongClass ==
DirectionClass
.Left)
1238
characterClass[counter + classIndex] =
DirectionClass
.Left;
1242
characterClass[counter + classIndex] =
DirectionClass
.EuropeanNumber;
1252
lastClass =
DirectionClass
.EuropeanNumber;
1258
(characterClass[counter + 1 + classIndex] ==
DirectionClass
.EuropeanSeparator||
1259
characterClass[counter + 1 + classIndex] ==
DirectionClass
.CommonSeparator))
1261
characterClass[counter + 1 + classIndex] =
DirectionClass
.GenericNeutral;
1291
if ((lastStrongClass ==
DirectionClass
.ArabicLetter) ||
1296
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1299
else if (lastStrongClass ==
DirectionClass
.Left)
1301
characterClass[counter + classIndex] =
DirectionClass
.Left;
1323
if (lastStrongClass ==
DirectionClass
.Left)
1325
characterClass[counter + classIndex] =
DirectionClass
.Left;
1335
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1351
(lastStrongClass ==
DirectionClass
.ArabicLetter || previousClassIsArabic)
1355
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1356
currentClass =
DirectionClass
.ArabicNumber;
1358
else if (lastStrongClass ==
DirectionClass
.Left)
1360
characterClass[counter + classIndex] =
DirectionClass
.Left;
1370
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1377
if ( (currentClass ==
DirectionClass
.ArabicNumber) &&
1378
(lastStrongClass ==
DirectionClass
.Left))
1399
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1416
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1431
if ((lastStrongClass ==
DirectionClass
.ArabicLetter) ||
1437
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1438
currentClass =
DirectionClass
.ArabicNumber;
1446
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1455
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1460
else if (lastStrongClass ==
DirectionClass
.Left)
1462
characterClass[counter + classIndex] =
DirectionClass
.Left;
1474
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1485
DirectionClass
.EuropeanNumber);
1492
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1511
if ((lastStrongClass ==
DirectionClass
.ArabicLetter))
1513
if (lastClass ==
DirectionClass
.EuropeanNumber)
1520
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1525
characterClass[counter + classIndex] =
DirectionClass
.EuropeanNumber;
1528
else if (lastClass !=
DirectionClass
.ArabicNumber)
1531
characterClass[counter + classIndex] =
DirectionClass
.Right;
1536
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1542
|| lastClass ==
DirectionClass
.ArabicNumber ?
1543
DirectionClass
.ArabicNumber :
1544
lastClass==
DirectionClass
.EuropeanNumber &&
1545
lastStrongClass !=
DirectionClass
.Left
1546
?
DirectionClass
.EuropeanNumber : lastStrongClass;
1634
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1643
IList<
DirectionClass
> characterClass, // [IN / OUT]
1675
DirectionClass
directionClass;
1678
if (directionClass ==
DirectionClass
.ParagraphSeparator ||
1679
directionClass ==
DirectionClass
.SegmentSeparator)
1715
DirectionClass
[] characterClass = new
DirectionClass
[cchText];
1727
new PartialArray<
DirectionClass
>(characterClass),
1740
IList<
DirectionClass
> characterClass, // [IN/OUT] direction class of each char
1744
DirectionClass
tempClass;
1856
if (
DirectionClass
.ParagraphSeparator != Classification.CharAttributeOf((int) Classification.GetUnicodeClass(codePoint)).BiDi)
1881
case
DirectionClass
.Left:
1882
case
DirectionClass
.Right:
1883
case
DirectionClass
.ArabicNumber:
1884
case
DirectionClass
.ArabicLetter:
1889
case
DirectionClass
.EuropeanNumber:
1926
DirectionClass
firstStrong =
DirectionClass
.ClassInvalid;
1930
if (firstStrong !=
DirectionClass
.Left)
1959
DirectionClass
lastStrongClass;
1969
lastStrongClass =
DirectionClass
.Right;
1979
lastStrongClass =
DirectionClass
.Left;
1996
DirectionClass
hiddenCharClass =
DirectionClass
.GenericNeutral;
2014
if ( hiddenCharClass ==
DirectionClass
.EuropeanNumber
2046
if (tempClass !=
DirectionClass
.EuropeanSeparator && tempClass !=
DirectionClass
.CommonSeparator)
2047
characterClass[counter] =
DirectionClass
.GenericNeutral;
2154
DirectionClass
currentClass;
2167
case
DirectionClass
.ParagraphSeparator:
2182
goto case
DirectionClass
.OtherNeutral;
2188
case
DirectionClass
.SegmentSeparator:
2189
case
DirectionClass
.WhiteSpace:
2190
case
DirectionClass
.OtherNeutral:
2191
characterClass[counter] =
DirectionClass
.GenericNeutral;
2193
if (counter>0 && characterClass[counter-1] ==
DirectionClass
.BoundaryNeutral)
2204
case
DirectionClass
.LeftToRightEmbedding:
2205
case
DirectionClass
.RightToLeftEmbedding:
2206
characterClass[counter] =
DirectionClass
.BoundaryNeutral;
2214
if(!levelsStack.Push(currentClass ==
DirectionClass
.LeftToRightEmbedding ? true : false))
2233
case
DirectionClass
.LeftToRightOverride:
2234
case
DirectionClass
.RightToLeftOverride:
2235
characterClass[counter] =
DirectionClass
.BoundaryNeutral;
2240
if(!levelsStack.Push(currentClass ==
DirectionClass
.LeftToRightOverride ? true : false))
2250
overrideClass = (currentClass ==
DirectionClass
.LeftToRightOverride) ?
2263
case
DirectionClass
.PopDirectionalFormat:
2264
characterClass[counter] =
DirectionClass
.BoundaryNeutral;
2308
if ( currentClass ==
DirectionClass
.EuropeanNumber
2314
Invariant.Assert(characterClass[counter] ==
DirectionClass
.ArabicNumber || characterClass[counter] ==
DirectionClass
.EuropeanNumber);
2325
DirectionClass
.Left :
DirectionClass
.Right;
2328
if (counter>0 && characterClass[counter-1]==
DirectionClass
.BoundaryNeutral)
2375
DirectionClass
sor;
2376
DirectionClass
eor;
2406
DirectionClass
.Right :
DirectionClass
.Left;
2411
DirectionClass
.Right :
DirectionClass
.Left;
2421
DirectionClass
.Right :
DirectionClass
.Left;
2430
characterClass[runLimits[runNumber]] ==
DirectionClass
.BoundaryNeutral)
2436
DirectionClass
.Right :
DirectionClass
.Left;
2493
state.LastStrongClass =
DirectionClass
.Right;
2494
state.LastNumberClass =
DirectionClass
.Right;
2499
state.LastStrongClass =
DirectionClass
.Left;
2500
state.LastNumberClass =
DirectionClass
.Left;
MS\Internal\TextFormatting\SimpleTextLine.cs (1)
1946
return Classification.CharAttributeOf(charClass).BiDi ==
DirectionClass
.WhiteSpace;
MS\Internal\TextFormatting\TextStore.cs (30)
890
DirectionClass
[] directionClasses = new
DirectionClass
[stringLength];
917
DirectionClass
europeanNumberOverride = _bidiState.GetEuropeanNumberClassOverride(culture);
964
new PartialArray<
DirectionClass
>(directionClasses, resolvedLength, ich - resolvedLength),
2510
NumberClass =
DirectionClass
.ClassInvalid;
2511
StrongCharClass =
DirectionClass
.ClassInvalid;
2546
LastStrongClass =
DirectionClass
.Left;
2547
LastNumberClass =
DirectionClass
.Left;
2551
LastStrongClass =
DirectionClass
.ArabicLetter;
2552
LastNumberClass =
DirectionClass
.ArabicNumber;
2565
public override
DirectionClass
LastNumberClass
2569
if (this.NumberClass ==
DirectionClass
.ClassInvalid )
2584
public override
DirectionClass
LastStrongClass
2588
if (this.StrongCharClass ==
DirectionClass
.ClassInvalid)
2608
DirectionClass
strongClass =
DirectionClass
.ClassInvalid;
2609
DirectionClass
numberClass =
DirectionClass
.ClassInvalid;
2635
if (strongClass !=
DirectionClass
.ClassInvalid)
2639
if (this.NumberClass ==
DirectionClass
.ClassInvalid)
2641
if (numberClass ==
DirectionClass
.EuropeanNumber)
2666
if(strongClass ==
DirectionClass
.ClassInvalid)
2668
this.StrongCharClass = ((CurrentLevel & 1) == 0) ?
DirectionClass
.Left :
DirectionClass
.ArabicLetter;
2671
if(numberClass ==
DirectionClass
.ClassInvalid)
2673
this.NumberClass = ((CurrentLevel & 1) == 0) ?
DirectionClass
.Left :
DirectionClass
.ArabicNumber;
2719
internal
DirectionClass
GetEuropeanNumberClassOverride(CultureInfo cultureInfo)
2728
return
DirectionClass
.ArabicNumber;
2731
return
DirectionClass
.EuropeanNumber;
MS\Internal\UnicodeClasses.cs (1)
183
internal
DirectionClass
BiDi;